繁体   English   中英

Laravel 7 多参数路由错误: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。

一切都很好,但是对于 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::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) }}

我只需要关联数组,专门用于多参数路由。

您在web.php中的路线等待名为user的参数,但是您为其设置了user_id参数,它会为您抛出异常。

在你的情况下应该是这样的:

// config/web.php Route::get('users/{user}/login', 'AdminUserController@login')->name('admin-user-login'); 之后,在您的 controller 中:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM