CakePHP3 同じテーブルに二つアソシエーションを作る

PHP

例えば、ここに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'
        ]);
        
カテゴリーPHP

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です