【问题标题】:Laravel - undefined prefixed routeLaravel - 未定义的前缀路由
【发布时间】:2019-09-07 18:37:57
【问题描述】:

我目前正在构建一个 CMS 系统,我为其创建了一组路由,该组以“cms”为前缀。问题出在我的 menu.blade 文件中,我在其中使用超链接 HREF 属性中的前缀调用了路由并得到了以下错误。

路线 [cms/welcome] 未定义。 (查看:C:\Bitnami\wampstack-7.1.27-0\apache2\htdocs\nathanreynolds\resources\views\layouts\CMS\menu.blade.php)

我可以通过在浏览器顶部输入 url 来访问路由就好了。但是使用 {{route('cms/welcome')}} 调用路由时会返回此错误.

menu.blade.php

<ul id="CMSnav">
 <li><a href="{{route('cms/welcome')}}">Welcome</a></li>
 <li><a href="{{route('cms/about')}}">About</a></li>
 <li><a href="{{route('cms/contact')}}">Contact us</a></li>
</ul>

web.php(路由)

/** CMS routes **/
Route::group(['prefix'=>'cms','middleware'=>'auth'],function(){
  Route::get('welcome','cmsController@index');
  Route::put('updateLayouts','cmsController@updateLayouts');
  Route::get('about','cmsController@about');
  Route::get('contact','cmsController@contact');
  //Route::resource('/CMS','cmsController');
});

输出路线列表通过 php artisan route:list

C:\Bitnami\wampstack-7.1.27-0\apache2\htdocs\nathanreynolds>php artisan route:list
+--------+---------------+-------------------------------------------+-----------------------------------+---------------------------------------------------------------------------+------------------+
| Domain | Method        | URI                                       | Name                              | Action                                                                    | Middleware       |
+--------+---------------+-------------------------------------------+-----------------------------------+---------------------------------------------------------------------------+------------------+
|        | GET|HEAD      | /                                         |                                   | Closure                                                                   | web              |
|        | GET|HEAD      | Blogs                                     | Blogs                             | App\Http\Controllers\pagescontroller@Blogs                                | web,Closure      |
|        | GET|HEAD      | CMS/about                                 |                                   | App\Http\Controllers\cmsController@about                                  | web,auth,Closure |
|        | GET|HEAD      | CMS/contact                               |                                   | App\Http\Controllers\cmsController@contact                                | web,auth,Closure |
|        | PUT           | CMS/updateLayouts                         |                                   | App\Http\Controllers\cmsController@updateLayouts                          | web,auth,Closure |
|        | GET|HEAD      | CMS/welcome                               |                                   | App\Http\Controllers\cmsController@index

【问题讨论】:

    标签: laravel routing


    【解决方案1】:

    route 帮助器用于为命名路由生成 URL,这不是你的情况。你有两种选择来完成你想要做的事情:

    #1 请改用url 助手:

    <li><a href="{{url('/cms/welcome')}}">Welcome</a></li>
    

    #2 改用命名路由。因此,在您的路线文件中,路线将被命名为:

    Route::get('welcome','cmsController@index')->name('cms.welcome');
    

    然后您可以使用route 助手:

    <li><a href="{{route('cms.welcome')}}">Welcome</a></li>
    

    【讨论】:

      猜你喜欢
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 2018-12-16
      • 2016-03-26
      • 2013-01-05
      • 2020-02-06
      相关资源
      最近更新 更多