2016-11-26 13 views
1

私は2つのテーブル:旅行と都市を持っています。別のテーブルの2つの要素に関連するlaravelテーブル

旅行は2都市間でのみ行う必要があります。 (「都市A」から「都市B」へ)。

トリップテーブルでは、citiesテーブルの "id"を参照する2つの外部キー(city_Aとcity_B)を配置します。

私はlaravelで最適化コードを取得する方法を知っていません。 どのような関係(hasOneまたはbelongsToMany)を使用するのか知りたいですし、どのようにtripControllerから都市情報を取得できますか?

+0

都市は多くの旅行の一部となり、旅行は複数の都市を持つことができるので、都市IDとトリップIDの2つの列を持つピボットテーブルを作成し、このテーブルを使用してクエリに参加することができます。 –

+0

public function getCityA(){ return $ this-> belongsToMany( '\ App \ City'、 'city_trip'、 'trip_id'、 'city_A') - > withPivot( 'city_B'); } – Naco

答えて

1

追加のピボット列を使用して、belongsToMany()(多対多)を使用する必要があります。 withPivot()メソッドが役立ちます。

querying relationseager loadingについてお読みください。

関連する問題