在Laravel中嵌套控制器和视图

时间:2014-01-11 18:27:19

标签: php laravel laravel-4

我的Laravel项目中有一个名为ImageController的控制器。这是一个非常基本的CRUD控制器。

当我通过/images/{id}操作访问ImageController@show时,我还希望显示评论。但是,我不想将评论逻辑放在我的ImageController中。对于这个逻辑,我创建了一个ImageCommentController

我不确定如何解决这个问题,但我正在尝试做这类事情:

class ImageController extends BaseController {
    // methods ...

    public function show($id)
    {
        $images = // get images ...
        $this->layout->view = // images.show and imagescomment.index (using ImageCommentsController@index logic)
    }
}

如果这是含糊不清的措辞,我很抱歉,如果有的话请告诉我,我会尽量让它更容易理解。

1 个答案:

答案 0 :(得分:2)

使用Controller来显示注释的一个更好的解决方案是使用一个带有renderComments()方法的类,它基本上是这样的:

class Comments {
    public static renderComments($commentType = 'images')
    {
        $comments = Comments::where('comment_type', '=', $commentType)->get();
        return View::make('comments', $comments)->render();
    }
}

然后例如在图片视图中:

...
{{ Comments::renderComments() }}
...