Laravel嵌套资源和可重用控制器

时间:2013-11-18 10:54:25

标签: php rest laravel laravel-4

我正在创建一个API,我希望包含常规资源和嵌套资源

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

路线

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

但我也希望将评论作为帖子的嵌套资源,比如

嵌套资源路径

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

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

重复使用PostsController的最佳方法

由于

2 个答案:

答案 0 :(得分:1)

使用继承是最好的方法:

class BaseController extends Controller {

    public function index() {

    }   

    public function create() {

    }       

    public function store() {

    }       

    public function update() {

    }       

}

class PostsController extends BaseController {

}

class CommentsController extends BaseController {

}

答案 1 :(得分:0)

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

您必须提供模型和其他与模型相关的数据,我是通过构造函数提供的,我的模型包含有关列的数据等。