【发布时间】:2019-04-07 09:58:42
【问题描述】:
我的应用程序支持使用过滤器获取数据。我目前的实现(效果很好)是
Model::select($fields)->with($relations)->tap(function ($query) use ($filters) {
// A lot of filtering logic here
// $query->where()......
})->get();
但是,我想将过滤逻辑直接移动到模型中,这样我就可以这样做了
Model::select($fields)
->with($relations)
->applyFilters($filters)
->get();
我尝试将filter 方法添加到Model,但此时我正在使用Builder,但它无法识别我的功能:
调用未定义的方法 Illuminate\Database\Eloquent\Builder::applyFilters()
除了创建一个新的构建器类并使用它之外,还有更简单的方法吗?
【问题讨论】:
标签: php laravel eloquent laravel-query-builder