Странное поведение с маршрутом в Laravel - PullRequest
0 голосов
/ 05 августа 2020

Я изменял код, чтобы показать разные данные, является пользователь суперадминистратором или нет, и обнаружил странное поведение, которого никогда раньше не видел:

В файле маршрута есть следующие маршруты:

Route::resource('alert_levels','AlertLevelController');
Route::get('alert_levels/{id}','AlertLevelController@index');

И контроллер выглядит так:

public function index(Request $request){
  $user = Auth::user();
  $company_id = $user->isSuperAdmin() ? $request->company_id : $user->company_id;
  ...
}

Код работает нормально (только суперадминистратор увидит форму, в которой есть ввод «company_id», и поэтому он / она будет отправить параметр запроса), но я попытался получить доступ к «админскому URL» (alert_levels / number ) с другой ролью пользователя, чтобы обработать код (перенаправление или другое), и я видно, что код выглядит так, как будто он его игнорирует. Он перенаправляет на пустую страницу, и что бы я ни делал, в результате всегда остается пустая страница. Я даже написал dd ('hello') в верхней части метода контроллера индекса, но результат тот же.

Пожалуйста, знаете ли вы, что я делаю не так или почему это ожидаемое поведение ?

Заранее спасибо.

1 Ответ

3 голосов
/ 05 августа 2020

Вам необходимо поменять местами маршруты, иначе resource будет оценивать ответ (поскольку он будет определять ту же структуру / метод URL-адреса) вместо того, который вы определили:

Route::get('alert_levels/{id}','AlertLevelController@index');
Route::resource('alert_levels','AlertLevelController');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...