2017-03-08 72 views
0

如何向上添加约束has()方法上的口才?雄辩 - 具有()约束

比方说,它想要检索所有包含约翰至少3条评论的帖子。我怎样才能做到这一点 ?预计代码的

非工作示例:

$posts = Post::has('comments', '>=', 3)->where('author', 'John')->get(); 

我也可以达到同样的结果的另一种方式(不使用有())?

+0

你问如何添加约束有(),或者该怎么做了同样的事情()不会,但没有使用它? – sisve

+0

如果可能,用has()约束。如果不可能,同样的事情没有has()。 – Ruben

回答

0

没有测试过这一点,但可以工作:

Post::whereHas('comments', function($q){ 
    $q->whereAuthor('John') 
     ->groupBy('post_id') 
     ->havingRaw('count(`comments`.`post_id`) >= 3') 
})->get(); 
+0

从mySql获取此错误 - 语法错误或访问冲突:1055表达式 – Ruben

+0

在数据库配置上,将mysql严格更改为false,并且它工作正常 – Ruben