我遇到了非常糟糕的错误,我在这个目录“views / admin / comments / 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/comments/replies,我得到404页面。当我将目录更改为”views / admin / reply“并路由到{{ 1}}索引链接完美地工作。 我列表上的这条路线如下:
Route::resource('admin/replies', 'CommentRepliesController');
请帮我理解这一点。最好的问候
答案 0 :(得分:1)
您的resource('admin/comments')
路由与以下resource('admin/comments/replies')
路由冲突。
为admin/comments
创建的其中一条路线将用于admin/comments/{comment}
- 这是标准show
路线。
现在考虑向admin/comments/replies
发出请求。路线文件中与之匹配的第一条路线是上述评论的展示路线 - {comment}
通配符匹配replies
。
路线的顺序非常重要,因此如果您将admin/comments/replies
路线移到上面的admin/comments
路线,它就应该有效。或者(更简单地说),你不应该"筑巢"像这样的资源路由,并使用不同的前缀。