Как проверить get параметр в роуте?

Добрый день. Есть в роуте следующий код:

Route::get('catalog/{mode?}', 'CatalogController@index');

Когда запрашиваю /catalog?mode=param то в контроллере CatalogController@index проверяю значение get параметра и вывожу то что нужно.
А как сделать проверку прямо в роуте на этот же адрес, только на другой контроллер?
Так не работает:
Route::get('catalog/?mode=setting', 'SettingController@index');

А выносить все в CatalogController очень много. Как быть?
  • Вопрос задан
  • 970 просмотров
Решения вопроса 1
neuotq
@neuotq
Прокрастинация
Итак начнем, в первом случае
Route::get('catalog/{mode?}', 'CatalogController@index');
у тебя все же используется переменная в качестве параметра роутера(пути), знак вопроса говорит нам о том что он опционален, может быть, а может и не быть. Ну и да по факту это часть get запросов.
Далее, в целом читать это.
Можешь воспользоваться хелпер функцией request():
Где-то в теле контроллера SettingController, в теле метода index
***
$mode = request()->mode;
***

А вообще зачем тебе так?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы