例えば、ここに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'
]);
