2017-03-08 8 views
0

に制約を追加するにはどうすればよいですか?()雄弁には?Eloquent - 制約付き()with

たとえば、Johnから少なくとも3つのコメントを含むすべての投稿を取得したいとします。どうやってやるの ?予想されるコードの

非作業例:

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

は、私は同じ結果に別の方法(を使用していない(持っている))を達成することはできますか?

+0

は、あなたがするが、それを使用せずに)(持っている、またはどのように持って、同じことを()を実行するための制約を追加する方法を求めていますか? – sisve

+0

可能であれば、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 strictをfalseに変更しました。 – Ruben

関連する問題