渴望加载不工作 - Laravel

时间:2015-01-29 11:21:52

标签: laravel-4 eager-loading

我已经急切地加载了数据,但是当我使用$ object->属性时,它再次从数据库中获取数据。

我的查询是:

$user = User::with([ 'Comment' => function($query){ $query->where('active', 1); $query->with('CommentReply.User'); $query->orderBy('updated_at', 'desc'); } ]);

但是当我使用$ user->评论时,它会再次加载所有评论,这会导致N + 1问题。出现这种情况的原因是什么?提前谢谢。

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