8

私はlaravelと雄弁を使用しています。
実際、別のテーブルの属性の条件に基づいてテーブルから結果をフィルタリングする際に問題があります。
私は3つのテーブルを持っています:

  • 会場

  • ここに関係があります:
    acityは多数locationsを持ち、 a は alocationに属しcityます。
    aは alocationに属し、venueavenueは oneを持っていlocationます。

私はcity_id位置テーブルに属性を持っています。これは関係から理解できるかもしれません。

質問は簡単です:
特定の都市に属する会場を取得するにはどうすればよいですか? 私が期待する説得
力のあるクエリは次のよう
$venues=Venue::with('location')->where('location.city_id',$city->getKey());

になります。 ありがとう!

4

2 に答える 2

10

いくつかのオプション:

$venues = Venue::whereIn('location_id', Location::whereCityId($city->id)->get->lists('id'))
    ->get();

またはおそらく使用whereHas

$venues = Venue::whereHas('location', function($query) use ($city) {
    $query->whereCityId($city->id);
})->get();
于 2015-09-02T19:10:26.847 に答える