В случае, если кто-то должен сделать перенаправление на текущую или любую страницу и работает с именованными маршрутами .
Проверено: Laravel 5
Некоторые предположения с пути.
маршрут:
$this->get('/favourite/{columnSorted?}/{sortOrder?}', 'Favourites@index')->name('favourite.list');
предполагаемый URL проекта в браузере:
columnSorted: 'title'
sortOrder: desc
http://yoursite.net/favourite/title/desc?page=3
Теперь именованный маршрут перенаправляется на страницу 3.
Как вы можете видеть на маршруте выше, columnSorted и sortOrder являются динамическими (? После параметра в маршруте, например: {sortOrder?}).
Что означает, что этот маршрут может иметь оба, только один или ни одного из них.
Если вы хотите передать их в массив параметров в маршруте, вы можете сделать что-то вроде этого:
/*prep redirect to, where user was params*/
$routeParams = [];
$q = '?';
if ($request->columnSorted)
{
$routeParams['columnSorted'] = $request->columnSorted;
}
if ($request->sortOrder)
{
$routeParams['sortOrder'] = $request->sortOrder;
$q = '';
}
if ($request->page)
{
$routeParams[] = $q . 'page=' . $request->page;
}
return redirect()->route('favourite.list', $routeParams);
Обратите внимание на этот параметр '$ q'.
Последний (и только последний) параметр маршрута $ q не должен пропускать '?', Иначе построенный маршрут из именованного маршрута будет иметь двойное '??' выглядит как:
http://yoursite.net/favourite/title/desc??page=3
... и перенаправление не удастся.
Номер страницы вы можете получить по запросу:
$request->get('page');
// or
$request->page
... и передать его методу, который будет выполнять перенаправление.