Laravel 7 multi parameter route error: Facade\Ignition\Exceptions\ViewException Missing required parameters for Route
Laravel 7 multi parameter route error: Facade\Ignition\Exceptions\ViewException Missing required parameters for Route
我的小项目在 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');
blade 模板中的错误部分:
{{ route('admin-user-login', ['user_id' => $ad->user_id]) }}
但是如果我像这样使用索引数组,它会起作用:
{{ route('admin-user-login', [$ad->user_id]) }}
或者这个:
{{ route('admin-user-login', $ad->user_id) }}
我只需要关联数组,特别是多参数路由。
您在 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'));
或在 blade 模板中:
{{ route('admin-user-login', ['user' => $user]) }}
Laravel 文档中的更多信息:https://laravel.com/docs/7.x/routing#named-routes
我的小项目在 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');
blade 模板中的错误部分:
{{ route('admin-user-login', ['user_id' => $ad->user_id]) }}
但是如果我像这样使用索引数组,它会起作用:
{{ route('admin-user-login', [$ad->user_id]) }}
或者这个:
{{ route('admin-user-login', $ad->user_id) }}
我只需要关联数组,特别是多参数路由。
您在 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'));
或在 blade 模板中:
{{ route('admin-user-login', ['user' => $user]) }}
Laravel 文档中的更多信息:https://laravel.com/docs/7.x/routing#named-routes