关于php:Laravel嵌套资源和可重复使用的控制器

Laravel Nested resources and re-usable controllers

我正在创建一个API,我想同时包含常规资源和嵌套资源

例如,我要说我有一个Post资源和Comment资源。我已经设置了适当的路由和控制器,例如以下

路线

1
2
Route::resource('posts', 'PostsControllers'); // /posts/{id}
Route::resource('comments', 'CommentsControllers'); /comments/{id}

但是我也想将评论作为帖子的嵌套资源,例如

嵌套资源路由

1
Route::resource('posts.comments', 'PostCommentsControllers'); /posts/{id}/comments/{id}

因为我已经写了CommentsController,所以我想知道为PostsController

重新使用CommentsController的最佳方法

谢谢


使用继承是最好的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class BaseController extends Controller {

    public function index() {

    }  

    public function create() {

    }      

    public function store() {

    }      

    public function update() {

    }      

}

class PostsController extends BaseController {

}

class CommentsController extends BaseController {

}


您可以仅在具有所有逻辑的通用FooBarController上扩展Blog / Comment / * Controller。

您将必须提供模型和其他与模型相关的数据,我是通过构造函数完成的,而我的模型则保存有关列等的数据。