Запоминание результатов при переходе на страницу поиска в Laravel
Я создал страницу поиска, используя Laravel, в верхней части которой есть фильтры "текст для поиска". Когда мышь убирается из фильтра, JavaScript страницы запускает Ajax-вызов, а затем возвращает результаты.
Поскольку я также включил разбиение на страницы (с помощью Ajax), когда я нажимаю на страницу 2 (ссылка выглядит следующим образом: http://project.test/customers?page=2), фильтры вверху сохраняют любой ранее введенный текст, и результаты поиска проводятся, что как раз то, что мне нужно!
Теперь проблема:
База данных у меня есть две основные таблицы.
Клиенты
Покупки
Отношения: у клиента может быть много покупок. Любая данная покупка принадлежит одному покупателю.
Я построил страницу поиска, чтобы пользователь мог искать клиентов, которые соответствуют заданным критериям поиска (например, те, которые принадлежат определенному городу или стране, например).
В приведенной ниже таблице поисковых фильтров, в которых отображаются все соответствующие записи о клиентах, у меня есть столбец с кнопкой покупок, которая затем перенаправляет пользователя на страницу покупок этого конкретного клиента (здесь кнопка покупок переходит по ссылке в форму project.test / клиенты /{{ID}}
{Id} проходит по маршруту, который затем загружает новую страницу, которая показывает все покупки этого конкретного клиента.
Теперь у меня есть кнопка "вернуться" на этой странице покупки, которая идет по следующей ссылке:
project.test / клиентов
Затем он загружает исходную страницу поиска (но загружает ее заново).
ЭТО ПРОБЛЕМА!!!
Поскольку страница загружается заново (по ссылке: project.test/ Customers)
Фильтры поиска очищаются, и на странице вместо этого отображаются ВСЕ клиенты. Таким образом, пользователь затем должен повторно ввести все критерии поиска, что раздражает пользователя, поскольку ему / ей часто приходится изменять пакет записей о покупках для определенного набора клиентов, которые соответствуют заданному набор критериев поиска - и, скорее всего, не нужно будет повторно вводить одни и те же критерии снова и снова при переходе на страницу покупки клиента, а затем обратно на главную страницу поиска.
Учитывая эту проблему, у меня возникает вопрос: возможно ли концептуально, с помощью Laravel, перейти на другую страницу, со страницы поиска, а затем, используя какой-либо метод, вернуться на исходную страницу поиска, для поисковых фильтров и результатов?, показывая раньше, чтобы все еще быть там? - Это было бы очень полезно иметь!
Я видел, как это делалось на других сайтах, возможно, с использованием других веб-технологий, но я просто не уверен, как начать / с чего начать делать это с Laravel / PHP?
Я ценю любую помощь, заранее спасибо!
1 ответ
Сохраните критерии поиска в сеансе пользователя, передавая их обратно на страницу поиска при переходе назад.
Допустим, у вас есть контроллер с функцией поиска маршрута:
public function search (Request $request)
{
// store the search criteria
session(['search_criteria' => $request->input()]);
// return the results
}
Затем в другой функции контроллера добавьте исходные параметры в ответ:
public function someRouteMethod (Request $request)
{
return redirect()->with('search_criteria', session('search_criteria'))->to('/search');
}
Затем на странице поиска снова заполните форму $search_criteria
данные:
<input value="{{ !empty($search_criteria) ? $search_criteria['foo'] : '' }}" name="foo">