くわこのpermission denied.

WEBエンジニアの僕がぶつかった技術的な問題や発見

【Laravel】条件付きhasMany

LaravelのEloquentで悪戦苦闘したのでメモ

EloquentのhasManyを使ったリレーションで、特定の条件で一致した物のみ紐づけたい場合、どうしたらいいのか悩んでいました。で、ずっと探してたら日本語リファレンスの下の方に載ってました笑
DB:Eloquent ORM

例えば、Authorに紐づくBookの内、titleに'first'が含まれている物だけを紐づけたオブジェクトが欲しい場合、

$author = Author::where('author_id', $author_id)
->with(array('book' => function($query)
{
    $query->where('title', 'like', '%first%');
 
}))->first();

みたいな感じです。

ふむ( ´_ゝ`)