Фильтрация данных с помощью пользовательских фильтров в laravel10 ⇐ Jquery
-
Гость
Фильтрация данных с помощью пользовательских фильтров в laravel10
Я пытаюсь отфильтровать таблицу данных с помощью пользовательских фильтров, скажем, я хочу фильтровать, используя столбец «заголовок»: в конечной точке моего контроллера я сделал это:
публичная функция getDatatableIndex(Request $request) { если ($request->ajax()) { $модель= Сообщение::запрос(); if ($request['title'] ?? false) { $model->where('title', 'LIKE', "%{$request['title']}%"); } $data = PostResource::collection($model->get())->resolve(); $dataTable = DataTables::of($data) ->addColumn('#', function ($row) { статический $order = 0; вернуть ++$заказ; }); $dataTable->addColumn('actions', function ($row) { $data['id'] = $row['id']; $data['actions'] = $this->table_data['actions']; return view('dashboard.post.parts.actions', $data)->render(); }) ->rawColumns(['#', 'действия']) ->escapeColumns(['*']); вернуть $dataTable->make(true); } } и в js-скрипте я сделал это:
var table = $("#kt_datatable_example_1").DataTable({ обработка: правда, поиск: ложь, Серверная сторона: правда, // аякс: маршрут, аякс: { URL: маршрут, данные: ajaxFilter }, столбцы: столбцы }); $("#apply-filters").click(function () { console.log($("#title").val()); // это правильно зарегистрирует заголовок в консоли таблица.рисовать(); }); вар ajaxFilter = функция (d) { d.title = $("#title").val(); }; и здесь я заметил кое-что: заголовок не отправляется по запросу, но если бы я сделал это
ajax: { URL: маршрут, данные: { title: "название теста" } }, тогда это работает.
Есть ли какие-нибудь предложения или решения, потому что я пробовал много способов, но ничего не помогло.
Я пытаюсь отфильтровать таблицу данных с помощью пользовательских фильтров, скажем, я хочу фильтровать, используя столбец «заголовок»: в конечной точке моего контроллера я сделал это:
публичная функция getDatatableIndex(Request $request) { если ($request->ajax()) { $модель= Сообщение::запрос(); if ($request['title'] ?? false) { $model->where('title', 'LIKE', "%{$request['title']}%"); } $data = PostResource::collection($model->get())->resolve(); $dataTable = DataTables::of($data) ->addColumn('#', function ($row) { статический $order = 0; вернуть ++$заказ; }); $dataTable->addColumn('actions', function ($row) { $data['id'] = $row['id']; $data['actions'] = $this->table_data['actions']; return view('dashboard.post.parts.actions', $data)->render(); }) ->rawColumns(['#', 'действия']) ->escapeColumns(['*']); вернуть $dataTable->make(true); } } и в js-скрипте я сделал это:
var table = $("#kt_datatable_example_1").DataTable({ обработка: правда, поиск: ложь, Серверная сторона: правда, // аякс: маршрут, аякс: { URL: маршрут, данные: ajaxFilter }, столбцы: столбцы }); $("#apply-filters").click(function () { console.log($("#title").val()); // это правильно зарегистрирует заголовок в консоли таблица.рисовать(); }); вар ajaxFilter = функция (d) { d.title = $("#title").val(); }; и здесь я заметил кое-что: заголовок не отправляется по запросу, но если бы я сделал это
ajax: { URL: маршрут, данные: { title: "название теста" } }, тогда это работает.
Есть ли какие-нибудь предложения или решения, потому что я пробовал много способов, но ничего не помогло.
Мобильная версия