在Laravel中嵌套共享子资源

Tor*_*sen 3 laravel laravel-4

我想知道如何区分子资源中不同父资源的请求.

考虑子资源评论,由帖子和用户共享.注释控制器如何知道正确的父资源是什么?

我有这些路线:

Route::resource('posts', 'PostsController');
Route::resource('posts.comments', 'CommentsController');
Route::resource('users', 'UsersController');
Route::resource('users.comments', 'CommentsController');
Run Code Online (Sandbox Code Playgroud)

CommentsController,我有这个功能:

public function index($parent_id) {
    // return multiple comments here
}
Run Code Online (Sandbox Code Playgroud)

因此,我可能希望显示属于某个帖子的所有评论或属于用户的所有评论,但在这种情况下,如何CommentsController判断是否$parent_id引用帖子或用户?

And*_*yco 5

这应该工作

Route::resource('posts', 'PostsController');
Route::resource('users', 'UsersController');
Route::resource('posts.comments', 'CommentsController');
Route::resource('users.comments', 'CommentsController');
Run Code Online (Sandbox Code Playgroud)

让父母使用这个

$parent = Request::segment(1) === 'posts' ? 'posts' : 'users';
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!不知道`Request :: segment()`.:P你应该使用`posts.comments`和`users.comments`而不是`/`来嵌套资源.这里很棒的教程:https://tutsplus.com/lesson/nested-resources/ (2认同)