Laravel Eloquent从相关表中获取价值

时间:2016-09-01 18:32:46

标签: php laravel

我试图通过评论获得该主题的所有文章,如果存在则用户对该文章进行投票。

架构如下:

article
id | topic | title | text

article_comments
article_id | comment_id

comments
id | text

votes
id | article_id | user_id

评论通过多对多关系加入。

我现在使用的查询是

    $articles = Article::where('topic', $topic)
                ->orderBy('id', 'desc')->paginate(15);

我需要的是在查询中添加这样的内容:

v.value as 'v_value'...
LEFT JOIN votes v ON (v.article_id=a.id AND v.user_id = :user_id)

有可能该文章没有得到该用户的投票 - 在这种情况下,投票表中的行将会丢失。

有人可以给我一个提示吗

感谢您的时间

1 个答案:

答案 0 :(得分:0)

通常您想要使用关系,然后使用eager load votes,例如:

$articles = Article::where('topic', $topic)
            ->orderBy('id', 'desc')
            ->with('votes')
            ->paginate(15);

现在,您也会在votes集合中加载$articles