函数扩展

函数扩展

为了适配多场景下常见需求,通过 Providers 扩展相应功能。

  • DB 扩展 app/Providers/DBServiceProvider.php
    //通过 wheres 扩展原有 where 方法不支持 in 、between 的问题
    Builder::macro('wheres',function() {
        //...
    });
    //使用方法
    $where=[
        ['name','=','张三'],
        ['age','>',18],
        ['like','in',['阅读','旅行']],
        ['birthday','between',[1990,1999]]
    ];
    DB::table('user')->wheres($where)->get();
    
  • 集合扩展 app/Providers/CollectionServiceProvider.php
    //通过 toList 方法扩展原有 toArray 方法无法处理多维数据转化问题
    Collection::macro('toList', function() {
        //...
    });
    //使用方法
    DB::table('user')->where('sex',0)->get()->toList();
    
  • 全局配置 config/app.php
    'providers' => ServiceProvider::defaultProviders()->merge([
        //...
        App\Providers\DBServiceProvider::class,
        App\Providers\CollectionServiceProvider::class
    ])->toArray()
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
搜索