Laravel хранит GET-параметры для перенаправления назад - PullRequest
0 голосов
/ 05 июня 2018

В моем приложении в настоящее время есть панель мониторинга, которая принимает список параметров GET для таких вещей, как фильтрация и разбиение на страницы.

Пример моего URL-адреса:

http://mysite.local/dashboard?filters=true&search=&optIn=on&dateFrom=&dateTo=&submit=Search&page=3

На панели инструментов я могу затем найти ссылку, которая приведет меня к информации о пользователях, чтобы я мог ее отредактировать.Внутри моей страницы пользователей у меня может быть кнопка, в которой есть {{ url()->previous() }}, чтобы вернуться на панель инструментов и сохранить все мои параметры GET.

Проблема в том, что страница пользователей имеет возможность обновляться,который отправляет запрос контроллеру POST, затем возвращается обратно на страницу пользователей с сообщением об успехе или ошибке, и это можно сделать и обновить столько раз, сколько это возможно, поэтому, как только это будет сделано, url()->previous теперь станет страницей пользователей.и я теряю URL панели инструментов со всеми моими параметрами.

Мне нужно иметь возможность сохранить URL панели инструментов со всеми параметрами GET, чтобы после того, как пользователь сделал это на странице пользователей, они всегда могутвернитесь на панель инструментов с их фильтрами и страницей.

Какой лучший способ добиться этого?

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Я думаю, что ввод запроса был правильным способом, вот как я это сделал.

Я приложил скрытый ввод к моей форме, который определяет, идет ли предыдущий URL или нетпередается обратно из формы и, если нет, используйте URL предыдущей страницы.

{{ Form::hidden('previous_url',  old('previous_url', url()->previous()) )}}

Затем я убедился, что ввод передается обратно из контроллера

return redirect()->back()->withInput(Input::all());

И, наконец, япоместил один и тот же входной код в <a href=""> примерно так

<a href="{{old('previous_url', url()->previous())}}" class="back-button"><i class="far fa-arrow-alt-circle-left"></i>Back</a>

Теперь тег a всегда будет содержать URL-адрес с предыдущей страницы, когда я впервые загружаю страницу пользователя

0 голосов
/ 05 июня 2018

Если вы планируете выполнять url () -> previous () в представлении, вам придется обходиться извлечением параметров и агрегированием их в URL.

Вы также можете,сохраните его в сеансе, но опять же, вам придется каждый раз проверять содержимое сеанса.

Почему бы вам не обработать его на контроллере / маршруте и не манипулировать им?

Если вы хотите заполнить поля ввода, попробуйте следующее:

https://laravel.com/docs/5.6/requests#old-input

Более подробную информацию можно найти здесь по URL:

https://laravel.com/docs/5.6/urls

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...