是否可以在比1级更深层次上与Eloquent进行多级关系查询?我的表看起来像这样:
post_comments-> ID |评论| POST_ID | user_ID的| ...
post_comment_replies-> ID |回复| post_comment_id | user_ID的| ...
用户 - > ID |名称| ...
user_data-> ID |头像| ...
所以我想问一下,是否可以通过所有回复和用户数据获取评论 发布在Eloquent的1个查询中回复评论的人。
这就是我的评论模型的样子:
class PostComment extends Model{
public function replies(){
return $this->hasMany(PostCommentAwnsers::class);
}
public function user() {
return $this->belongsTo(User::class);
}
public function userInfo(){
return $this->belongsTo(UserInfo::class,'user_id','user_id');
}}
public function index($id){
$posts = Post::find($id);
$postComments = PostComment::where('post_id','=',$id)->paginate(5);
return view('post.show',[
'post' => $post,
'postComments' =>$postComments
]);
}
当我获得评论的所有用户数据时,我想获得回复者的所有用户数据。 我真的很抱歉,如果在其他地方已经将其删除或记录在案,但我似乎无法找到解决此问题的确切方法。
答案 0 :(得分:8)
你应该寻找急切的加载:https://laravel.com/docs/5.3/eloquent-relationships#eager-loading
如果你想获得所有帖子及其评论:
$posts = Post::with('comment')->get();
如果您希望所有帖子都有评论和回复评论:
$posts = Post::with('comment.reply')->get();