Laravel 7多参数路由错误:Facade \ Ignition \ Exceptions \ ViewException缺少Route的必需参数

时间:2020-04-25 15:44:18

标签: php laravel laravel-7

我的小项目在Laravel 5.8中,我决定使用复制粘贴控制器,模型,路线和...将其升级到Laravel 7。

一切都很好,但是对于route具有关联数组,我给出了此错误:

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]) }}

但是如果我使用像这样的索引数组,它会起作用:

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

或者这个:

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

我只需要关联数组,特别是多参数路由。

1 个答案:

答案 0 :(得分:1)

您在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