【问题标题】:laravel route for index page doesnt work but the route exists索引页面的 laravel 路由不起作用,但该路由存在
【发布时间】:2018-02-12 02:07:46
【问题描述】:

我遇到了一个非常糟糕的错误,我在这个目录“views/admin/cmets/replies”中有一个名为“replies”的文件夹。和控制器名称“CommentRepliesController”。路线定义如下:

Route::group(['middleware'=>'admin'], function(){
Route::resource('admin/users', 'AdminUsersController');
Route::resource('admin/posts', 'AdminPostsController');
Route::resource('admin/categories', 'AdminCategoriesController');
Route::resource('admin/photos','AdminPhotosController');

Route::resource('admin/comments', 'PostsCommentsController');

Route::resource('admin/comments/replies', 'CommentRepliesController');
Route::get('/admin', function (){
  return view('admin.index');
 });
 });

我的所有路由都可以正常工作,除了当我尝试去“mysite.com/admin/cmets/replies”时的回复,我得到 404 页面。当我将目录更改为“views/admin/replies”并路由到@987654322 @索引链接完美运行。 我列表中的这条路线如下:

| GET|HEAD | admin/comments/replies | replies.index | 
App\Http\Controllers\CommentRepliesController@index | web,admin |

请帮助我理解这一点。最好的问候

【问题讨论】:

    标签: php laravel laravel-5.3


    【解决方案1】:

    您的resource('admin/comments') 路由与以下resource('admin/comments/replies') 路由冲突。

    admin/comments 创建的路由之一将是admin/comments/{comment} - 这是标准的show 路由。

    现在考虑向admin/comments/replies 提出请求。路由文件中与上述 cmets 的显示路由匹配的第一条路由 - {comment} 通配符匹配 replies

    路线的顺序很重要,因此如果您将admin/comments/replies 路线高于admin/comments 路线,它应该可以工作。或者(更简单地说),您不应该像这样“嵌套”资源路由,并使用不同的前缀。

    【讨论】:

      猜你喜欢
      • 2019-11-03
      • 2017-05-31
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      • 2017-10-31
      • 2020-12-08
      • 2016-11-05
      • 2015-01-26
      相关资源
      最近更新 更多