laravel中缺少路线发布所需的参数

时间:2020-04-24 07:14:23

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

在基于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>

在我的项目中,还有另一个名为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

这就是我得到的

enter image description here

我没有称为“ cm”的参数。

4 个答案:

答案 0 :(得分:2)

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

您需要使用单个名称(例如 cms-home cms_home

)更改路线名称

然后您可以简单地将其用作:

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

您可以在刀片中调用它:

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

请查看此referance

答案 1 :(得分:0)

您的路线需要一个参数(厘米) 您应该在模板href="{{ route('cms.home.create', ['cm' => $id_cm]) }}"

答案 2 :(得分:0)

只需在路由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>

答案 3 :(得分:0)

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

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