hasMany()で紐づくレコードを取得時、パラメータを渡してレコードを絞る方法。
こんなリレーションがあったとして
members articles
id -----┐ id
| genre_id
└------- member_id
メンバーに紐づく記事(articles)を取得したい場合は、Memberモデルに以下を記述すれば取得出来る。
public function articles()
{
$articles = $this->hasMany(Article::class)
->get();
return $articles;
}
しかし、ジャンルIDを指定してメンバーに紐づく該当ジャンルの記事を取得したい場合は、ジャンルIDを渡して以下のようにすることで取得出来る。
public function articles($genre_id)
{
$articles = $this->hasMany(Article::class)
->where('genre_id', '=', $genre_id)
->get();
return $articles;
}
view側で以下のようにコールすればOK。
$articles = $member->articles($genre_id);