[英]Laravel 7 multi parameter route error: Facade\Ignition\Exceptions\ViewException Missing required parameters for Route
My small project was in Laravel 5.8 and i decided to upgrade it to Laravel 7 using copy paste controllers, models, routes &...我的小项目在 Laravel 5.8 中,我决定使用复制粘贴控制器、模型、路线和...将其升级到 Laravel 7。
Every things is fine but for route has an Associated array, I given this error:一切都很好,但是对于 route 有一个 Associated 数组,我给出了这个错误:
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:路线:
Route::get('users/{user}/login', 'AdminUserController@login')->name('admin-user-login');
Error section in blade template:刀片模板中的错误部分:
{{ route('admin-user-login', ['user_id' => $ad->user_id]) }}
But it works if i use Indexed array like this:但如果我像这样使用索引数组,它会起作用:
{{ route('admin-user-login', [$ad->user_id]) }}
Or this one:或者这个:
{{ route('admin-user-login', $ad->user_id) }}
I need only Associated array, specialy for multi parameter routes.我只需要关联数组,专门用于多参数路由。
Your route in web.php
wait for paramenter named user
, but you put user_id
paramenter for it and it throws exeption for you.您在
web.php
中的路线等待名为user
的参数,但是您为其设置了user_id
参数,它会为您抛出异常。
In your case in should be something like this:在你的情况下应该是这样的:
// config/web.php Route::get('users/{user}/login', 'AdminUserController@login')->name('admin-user-login');
After that, in your controller:之后,在您的 controller 中:
route('admin-user-login', ['user' => $user]);
or:或者:
$user = User::findOrFail($user_id); route('admin-user-login', compact('user'));
or in blade templates: {{ route('admin-user-login', ['user' => $user]) }}
或在刀片模板中:
{{ route('admin-user-login', ['user' => $user]) }}
More info in Laravel docs: https://laravel.com/docs/7.x/routing#named-routes Laravel 文档中的更多信息: https://laravel.com/docs/7.x/routing#named-routes
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.