Laravel 5 控制器最佳实践



我正在使用Lumen作为REST API。我有一个帖子模型和一个评论模型。

后.php

public function comments(){
    return $this->hasMany('AppComment');
}

注释.php

public function post(){
    return $this->belongsTo('AppPost');
}

我还有这两种模型的资源控制器。如果我想获得对特定帖子的所有评论,我在哪里写这个逻辑?在帖子控制器中(因为我将按帖子过滤评论(还是在评论控制器中(因为我毕竟正在获取评论(?哪种方法更好?还是完全有其他方法(例如创建一个单独的控制器(?我只想获得正确的结构并编写干净的代码。任何帮助将不胜感激。

我个人喜欢遵循控制器没有任何自定义方法的模式。因此,您最终会得到许多非常薄的控制器,这些控制器具有通用资源方法,例如 index update store create edit destroy

所以为你的例子我会/Posts/CommentController.php资源方法

这取决于实际要求以及您如何处理数据。通常,帖子列表页面上不会显示任何评论。因此,最好只发送没有评论的帖子,这意味着逻辑将在帖子控制器中。对于帖子详细信息页面,您将发送带有评论的帖子,因此逻辑仍将在帖子控制器中。像这样:

Post::where('id', $id)->with('comments')->first();

如果您只需要为没有帖子对象的特定帖子发送评论,它将在评论控制器中。

Comment::where('post_id', $post_id)->get();

如果你有任何困惑,请问我。

最新更新