所以这是我的例子。
我有一个属于多个作者的博客文章列表。我想获取由拥有3个以上博客文章的作者撰写的所有博客文章。
POSTS表
id | author_id | post_title | post_body
1 | 1 | ... | ...
2 | 1 | ... | ...
3 | 1 | ... | ...
4 | 2 | ... | ...
5 | 3 | ... | ...
6 | 4 | ... | ...
7 | 4 | ... | ...
8 | 4 | ... | ...
9 | 5 | ... | ...
所以,我想得到这个结果:
id | author_id | post_title | post_body
1 | 1 | ... | ...
2 | 1 | ... | ...
3 | 1 | ... | ...
6 | 4 | ... | ...
7 | 4 | ... | ...
8 | 4 | ... | ...
我如何在一个雄辩的查询中写出这个?
我将不得不再次检查是否必须以不同的方式嵌套,但是类似这样的事情似乎可以解决问题:
Post::has('user.posts', '>', 3)->get()
试图说说拥有用户的帖子数量大于3的帖子。
如果该嵌套不起作用,它将类似于:
Post::whereHas('users', function ($q) {
$q->has('posts', '>', 3);
})->get();
更新:
Post::whereHas('users', function ($q) {
$q->whereHas('posts', function ($q) {
$q->where('status', 'published');
}, '>', 3);
})->get():
虽然看看这是否可行(不确定):
Post::whereHas('users.posts', function ($q) {
$q->where('status', 'published');
}, '>', 3)->get();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句