批改状态:合格
老师批语:查询结果的返回形式,现在基本上统一了
(macroable)的类才可以扩展。AppServiceProvider.php中必须要有boot方法。macro('扩展的方法名称', '该方法执行的操作')参数。app\providers下创建DBServiceProvider.phpAppServiceProvider.php文件内容,可以直接复制修改。必须要有boot方法。
<?phpnamespace App\Providers;use Illuminate\Support\ServiceProvider;use Illuminate\Database\Query\Builder as QueryBuilder;class DBServiceProvider extends ServiceProvider{public function boot(){QueryBuilder::macro('arrlists', function(){$data = $this->get()->map(function ($value){return (array)$value;})->toArray();return $data;});}}
config\app.php中把DBServiceProvider注册到框架App\Providers\RouteServiceProvider::class,修改。
// 扩展DBServiceProviderApp\Providers\DBServiceProvider::class,
get()、all()一样的调用。
DB::table('admin')->arrlists();
查询结果为纯数组:

扩展后查询结果就变为纯数组,方便处理和调用。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号