Laravel 7 многопараметрическая ошибка маршрута: Facade \ Ignition \ Exceptions \ ViewException Отсутствуют обязательные параметры для маршрута - PullRequest
0 голосов
/ 25 апреля 2020

Мой маленький проект был в Laravel 5.8, и я решил обновить его до Laravel 7, используя контроллеры копирования моделей, модели, маршруты и ...

Все хорошо, но для маршрута есть Связанный массив, я дал эту ошибку:

Facade\Ignition\Exceptions\ViewException
Missing required parameters for [Route: admin-user-login] [URI: admin/users/{user}/login]. (View: /home/hamidreza/projects-tmp/laravel7/resources/views/admin/ads-index.blade.php) 

Маршрут:

Route::get('users/{user}/login', 'AdminUserController@login')->name('admin-user-login');

Раздел ошибки в шаблоне блейда:

{{ route('admin-user-login', ['user_id' => $ad->user_id]) }}

Но это работает, если я использую Indexed массив, подобный этому:

{{ route('admin-user-login', [$ad->user_id]) }}

Или этот:

{{ route('admin-user-login', $ad->user_id) }}

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

1 Ответ

1 голос
/ 25 апреля 2020

Ваш маршрут в web.php дождется параметра с именем user, но вы поставите для него параметр user_id, и он выдаст исключение для вас.

В вашем случае в должно быть что-то вроде этого:

// config/web.php Route::get('users/{user}/login', 'AdminUserController@login')->name('admin-user-login'); После этого в вашем контроллере:

route('admin-user-login', ['user' => $user]);

или:

$user = User::findOrFail($user_id); route('admin-user-login', compact('user'));

или в блейде шаблоны: {{ route('admin-user-login', ['user' => $user]) }}

Подробнее в Laravel документы: https://laravel.com/docs/7.x/routing#named -routes

...