【问题标题】:Laravel 7 multi parameter route error: Facade\Ignition\Exceptions\ViewException Missing required parameters for RouteLaravel 7 多参数路由报错:Facade\Ignition\Exceptions\ViewException Missing required parameters for Route
【发布时间】:2020-08-09 04:51:22
【问题描述】:

我的小项目在 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]) }}

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

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

或者这个:

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

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

【问题讨论】:

  • 嗨,您的路线等待user 参数,但您为它输入了user_id。为什么?
  • 如果对您有帮助,请告诉我。我将其存储为您问题的答案。
  • @OlegNurutdinov 嗨,感谢您的关注,它有帮助!你知道为什么我在 laravel 5.8 中没有错误吗?

标签: php laravel laravel-7


【解决方案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

【讨论】:

  • 感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2020-10-17
  • 2020-05-10
  • 2020-09-07
  • 2020-04-23
  • 2023-04-01
  • 2020-09-24
  • 2020-09-17
  • 2020-08-20
相关资源
最近更新 更多