例えば、ここに2つのテーブルがあります。
UsersとReviewsです。
機能はユーザーがお互いを評価するというものですが、ユーザーは乗客、ドライバーと二つの立場があるとします。
なので、Reviewsは
「レビューと対象者(ドライバー)の紐づけ」
「レビューと書いた人(乗客)の紐づけ」
と2つの方法でUsersと紐づける必要があります。
で、普通に書いた人を紐づけるのは
//ReviewsTable.php内 public function initialize(array $config) { parent::initialize($config); $this->table('reviews'); $this->displayField('id'); $this->primaryKey('id'); $this->belongsTo('Users', [ 'foreignKey' => 'user_id', 'joinType' => 'INNER' ]); }
でいいんですが、2つ目のbelongsToアソシエーションをどうやって作るのか、は次のようにやります。
$this->belongsTo('Drivers', [ 'className' => 'Users', 'foreignKey' => 'driver_id' ]);