我已经急切地加载了数据,但是当我使用$ object->属性时,它再次从数据库中获取数据。
我的查询是:
$user = User::with([
'Comment' => function($query){
$query->where('active', 1);
$query->with('CommentReply.User');
$query->orderBy('updated_at', 'desc');
}
]);
但是当我使用$ user->评论时,它会再次加载所有评论,这会导致N + 1问题。出现这种情况的原因是什么?提前谢谢。
答案 0 :(得分:1)
一切都运转良好,坚持一个惯例:
$user = User::with([
'comment' => function($query){
$query->where('active', 1);
$query->with('CommentReply.User');
$query->orderBy('updated_at', 'desc');
}
]);
//then
$user->comment
或强>
$user = User::with([
'Comment' => function($query){
$query->where('active', 1);
$query->with('CommentReply.User');
$query->orderBy('updated_at', 'desc');
}
]);
//then
$user->Comment
通知信封。
还要注意$comment->commentReply->user
会做同样的事情,因此您需要致电$comment->CommentReply->User
。