Чтобы сначала отфильтровать данные, вы должны поместить datepicker
в тег form
вне таблицы, в которой содержатся данные.
Если вы хотите использовать ajax вызов, то передайте это значение формы, которое содержит дату фильтра, и тем же методом index
вы можете проверить, является ли этот вызов ajax вызовом или нет.
Если ajax вызов, то переопределите переменную с отфильтрованными данными.
Примерно так:
$reports=Report::orderBy('id', 'DESC')->paginate(10);
if($request->ajax()){
$reports=Report::orderBy('id', 'DESC')->whereDate('created_at', today())->paginate(10);
}
return view('reports.index',['reports' => $reports]);
, если вы не хотите использовать ajax вызов и хотите загрузить страницу, вы можете передать данные и проверить, существуют они или нет, что-то например,
$reports=Report::orderBy('id', 'DESC')
->when(! empty(\request('filterdate')), function($q) {
return $q->whereDate('created_at', today());
})
->paginate(10);
return view('reports.index',['reports' => $reports]);
Будет отфильтрована только дата, когда filterdate
не пусто.
Надеюсь, это поможет:)