Мое приложение поддерживает выборку данных с фильтрами. Моя текущая реализация (которая отлично работает) -
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 ()
Есть ли более простой способ сделать это, кроме создания нового класса построителя и использования этого?