【问题标题】:Missing required parameters for route issue in laravel在 laravel 中缺少路由问题所需的参数
【发布时间】:2020-08-07 17:07:04
【问题描述】:

在我基于 laravel 的应用程序中,我的 admin.blade.php 中有以下链接

<ul class="nav nav-treeview">
  <li class="nav-item">
    <a href="{{ route('cms.home.create') }}" class="nav-link">
      <i class="far fa-circle nav-icon"></i>
      <p>{{ __('Home Page') }}</p>
    </a>
  </li>
</ul>

在我的项目中,我有另一个名为 create.blade.php 的刀片,位于以下路径中

views/cms/home/create.blade.php

我有一个控制器,名为 CmsHomeController.php 用于该刀片

在 CmsHomeController 中,我有一个名为 create 的方法

public function create()
{            
    return view('cms.home.create'); 
}

一旦用户点击admin.blade.php中的上述链接,用户应该转到create.blade.php刀片。

在我的web.php 中,我已将我的路线注册如下,

Route::resource('cms.home','CmsHomeController');

但现在的问题是,

当我在管理刀片中单击该链接时,我收到一条错误消息

Facade\Ignition\Exceptions\ViewException
Missing required parameters for [Route: cms.home.create] [URI: cms/{cm}/home/create]. (View: C:\xampp\htdocs\mylaravelproject\resources\views\layouts\admin.blade.php) 

create.blade.php 中,我只有一个简单的表单

我在哪里做错了,正确的解决方法是什么?

更新:

我试过跑步

php artisan route:list

这就是我得到的

我没有这样的参数,'cm'..

【问题讨论】:

  • 您可以使用 php artisan route:list 命令检查您的路线名称,并根据路线检查名称。
  • 看看我刚刚在下面发布的答案!!

标签: php laravel laravel-5 error-handling routes


【解决方案1】:

你的路线需要一个参数(cm) 你的模板中应该有href="{{ route('cms.home.create', ['cm' =&gt; $id_cm]) }}"

【讨论】:

  • 但是我没有将任何参数传递给我的方法,这个'cm'是什么?
  • 我不了解您的整个应用程序,我只是阅读了错误消息 Missing required parameters for [Route: cms.home.create] [URI: cms/{cm}/home/create]
  • 好吧,我真的没有一个参数或一个名为'cm'的变量
【解决方案2】:

当您在资源路由中使用 dot (.) 运算符时,它将生成嵌套路由。

您需要使用单个名称更改您的路线名称,例如 cms-homecms_home

然后你可以简单地使用它:

Route::resource('cms_home','CmsHomeController');

在你的刀片中你可以调用它:

<a href="{{ route('cms-home.create') }}" class="nav-link">

请看这个referance

【讨论】:

  • 是的,这似乎是问题所在,将我的路线更改为此,Route::get('/cms/home/create', 'CmsHomeController@index')->name('cms-home 。创建');它现在正在工作。感谢指导
  • @VolkaDimitrev 太棒了!很高兴帮助您解决您的问题。
【解决方案3】:

只需像这样在您的路线cms.home.create 中传递值。

<ul class="nav nav-treeview">
  <li class="nav-item">
      <a href="{{ route('cms.home.create', ['cm' => $value]) }}" class="nav-link">
        <i class="far fa-circle nav-icon"></i>
        <p>{{ __('Home Page') }}</p>
      </a>
   </li>
</ul>

【讨论】:

    【解决方案4】:

    如果你需要路由是cms.home,试试这个:

    Route::resource('cms.home', 'CmsHomeController', [   
        'parameters' => ['cms' => 'cms']
    ]);
    

    【讨论】:

      猜你喜欢
      • 2019-01-09
      • 2020-08-07
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 2022-01-21
      • 2020-11-01
      相关资源
      最近更新 更多