我正在尝试构建像reddit这样的审核报告队列。在队列中,我希望一起显示帖子和评论,但我能得到的只有一个,或者有两个查询:
//Get all posts with reports
Post::whereHas('reports')->with('reports.user')->latest()->get();
// Get all comments with reports
Comment::whereHas('reports')->with('reports.user')->latest()->get();
与评论,帖子和报告存在多态关系。表
以下是帖子的输出:
{
"id": 7,
"author_id": 1,
"title": "A forum post!",
"body": "<p>Some Forum post content</p>",
"created_at": "2017-08-08 23:03:22",
"updated_at": "2017-08-08 23:03:22",
"reports": [
{
"id": 5,
"user_id": 1,
"content": "Rule 1",
"reportable_id": 7,
"reportable_type": "App\\Post",
"created_at": "2017-08-11 19:32:02",
"updated_at": "2017-08-11 19:32:02",
"user": {
"id": 1,
"role_id": 1,
"name": "Admin",
"created_at": "2017-08-01 18:37:18",
"updated_at": "2017-08-10 18:59:52"
}
}
]
},
我如何查询帖子和评论?
修改的 我不想急于在帖子中加载评论。我想加入我上面列出的两个查询。我觉得在阅读之后我需要在两个查询之间创建union,因为我不认为我可以将它们加在一起。我不知道该怎么做。
答案 0 :(得分:0)
为什么不从报告模型开始,而不是使用帖子或评论作为起点接近这个?你说你正在建立一个“审核报告队列”,这表明查询报告表(以及加入评论/帖子)可能是一个更自然的解决方案。
range
中向Laravel添加了预先加载