Как на Laravel реализовать сложный фильтр по выборку товаров из БД?
Пока делаю так:
Считаем количество товаров удовлетворяющих фильтру:
$kol = \App\Good::select('id', 'name')->where(function ($query) {
if (...) {
$query->where('id','>',0);
}
...
много условий
...
})->count();
Получаем страницу товаров по фильтру:
$sel = \App\Good::select('id', 'name')->where(function ($query) {
if (...) {
$query->where('id','>',0);
}
...
много условий
...
})->skip(($pg-1)*$max)->take($max)->get();
Можно ли условие для фильтра составить 1 раз и потом подставить в выборку?
Как это реализовать?
public function scopeFilter($query)
{
if (...) {
$query->where('id','>',0);
}
...
много условий
...
})->skip(($pg-1)*$max)->take($max)
return $query;
}