我试图通过评论获得该主题的所有文章,如果存在则用户对该文章进行投票。
架构如下:
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)
有可能该文章没有得到该用户的投票 - 在这种情况下,投票表中的行将会丢失。
有人可以给我一个提示吗
感谢您的时间
答案 0 :(得分:0)
通常您想要使用关系,然后使用eager load votes
,例如:
$articles = Article::where('topic', $topic)
->orderBy('id', 'desc')
->with('votes')
->paginate(15);
现在,您也会在votes
集合中加载$articles
。