Call to undefined method Illuminate\Database\Eloquent\Builder::filter()
Не получается настроить фильтрацию.
public function index(OrderFilter $filter): View
{
$items = Order::withTrashed()->filter($filter)->paginate(10);
return view($this->viewsPath . self::INDEX_ACTION, [
'items' => $items,
'perPage' => 10,
]);
}
Получаю ошибку Call to undefined method Illuminate\Database\Eloquent\Builder::filter()
Когда убираю filter($filter), ошибка пропадает, фильтрация не работает.
Как правильно настроить фильтрацию?
where:
$first = DB::table('orders')
->where('id');
$items = DB::table('orders')
->where('id')
->union($first)
->get();
Ответы (1 шт):
Он не может найти Builder::filter()
А почему не использовать where?
В документации очень простая и легкая фильтрация
https://laravel.su/docs/8.x/queries#where-clauses
Обновление:
Напишите, что вы хотите сделать. А то пока что вы перебираете фильтрацией одно и тоже
Метод union позволяет проводить слияние, а вы просто пытаетесь сделать фильтрацию одного и того же (в таблице orders столбца id 2 раза)
Если так хотите провести фильтрацию:
public function index():
{
$orders = DB::table('orders')
->where('id', '<', 100)
->get();
return view('index', compact(['orders']));
}
Потом просто выводите как обычно