函数扩展
为了适配多场景下常见需求,通过 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()