如何在laravel关系中使用where查询?

时间:2016-12-13 15:28:07

标签: php mysql laravel-5 eloquent

你好我有一个CommentRetours表,它将retours连接到评论。

数据库:

enter image description here

我需要显示用户的所有评论并将其返回到视图。

我现在有了这个问题:

    $comments = CommentRetours::with(['comments' => function($q) {
        $q->where('user_id',Auth()->user()->id);
    }])->get();

返回NULL ..

user_id位于评论表中。

作为结构示例,我将添加:

enter image description here

我做错了什么?

2 个答案:

答案 0 :(得分:2)

这个问题已经很老了,但是OP所采用的解决方案并不理想,这是他可能应该做的事情:

$comments = CommentRetours::whereHas(['comments' => function($q) {
    $q->where('user_id', Auth::id());
}])->with('comments')->get();

whereHas检查CommentRetours是否有一些符合条件的注释。

我还用Auth()->user()->id取代了Auth::id()

答案 1 :(得分:0)

我通过将user_id添加到CommentRetours表来修复它,现在我不必在其他关系中查询。

我可以直接在表格中看到user_id