:あなたはたとえばforeach
を使用して、それを反復処理することができるように
$leagues = DB::table('leagues')
->select('league_name')
->join('countries', 'countries.country_id', '=', 'leagues.country_id')
->where('countries.country_name', $country)
->get();
$leagues
は、Illuminate\Support\Collection
オブジェクトのインスタンスになります。
結合のタイプを指定するjoin()
関数に5番目の引数を渡すことができます(デフォルトは "inner"です)。
あなたが雄弁を使用し、「リーグ」のモデルを持っている場合は、あまりにもモデルに参加使用することができ、その後:この場合
$leagues = League::select('league_name')
->join('countries', 'countries.country_id', '=', 'leagues.country_id')
->where('countries.country_name', $country)
->get();
を、$leagues
は、通常のLaravelコレクションを拡張しIlluminate\Database\Eloquent\Collection
のインスタンスになりますと、定期的なコレクションよりも少し機能が充実しています。
しかし、使用せずにこれを書くためのより簡単な方法があり参加している:
$leagues = League::select('league_name')->whereHas('countries', function($query) use ($country) {
$query->where('country_name', $country);
})->get();
注意をこの例では、「国」は、テーブル名が、Eloquent relationship nameではありませんので、あなたがあなたの関係を設定する必要があることこのアプローチを使用する前に
また、joinを使用する代わりに、この例では2つのクエリまたはネストされたクエリを使用しますが、わかりません。 SELECT league_name FROM leagues WHERE country_id IN (SELECT id FROM countries WHERE country_name='$country')
一番うまくいって乾杯! – xiimoss