-
hasメソッドを使用する方法:
$posts = Post::has('comments')->get();
上記の例では、Postモデルに定義されたcommentsというリレーションシップが存在する投稿のみを取得します。
もし、特定の条件を持つ関連するモデルを取得したい場合は、クロージャを使用することができます。
$posts = Post::has('comments', function ($query) { $query->where('approved', true); })->get();
上記の例では、approvedがtrueのコメントを持つ投稿のみを取得します。
-
whereHasメソッドを使用する方法:
$posts = Post::whereHas('comments', function ($query) { $query->where('approved', true); })->get();
上記の例では、Postモデルにcommentsというリレーションシップが存在し、approvedがtrueのコメントを持つ投稿のみを取得します。
-
where関数を使用する方法:
$posts = Post::where('column', 'value')->get();
上記の例では、リレーションシップではなく、直接カラムに対してwhere条件を適用しています。columnとvalueは適切な値に置き換えてください。
これらの方法を使用することで、リレーションシップのwhere条件を指定してデータベースクエリを実行することができます。適切なモデルとカラムを使用して、上記のコード例を自分の要件に合わせて修正してください。