質問: $this->find() ->contain([ 'Accounts', 'Managers' => [ 'ManagerAccounts' => [ 'fields' => ['ManagerAccounts.name'], ], 'fields' => ['Managers.id', 'Managers.account_id'], ], ]) ・ ・ ・ ``` ### 試したこと cookbookにあるようなclassNameにてモデルを特定、 別名のアソシエーションを設定したのですが、上記のようなエラーになり 他にも設定が必要なのか詳しい方いらっしゃいましたら解説願います。 ※実際にビルドされたSQLの内容を見るとしっかりと別名でエイリアスされ 問題なくデータ取得ができるのですが... ### 補足情報(FW/ツールのバージョンなど) CAKE PHP 3.6
回答: あまりアソシエーションには詳しくありませんが、以下が怪しそうです。 これって、どちらもAccountsモデルとのアソシエーションですよね。 だから > > Cannot redeclare > > > と怒られるのではないでしょうか。 ``` $this->belongsTo('Accounts', [ 'foreignKey' => 'account_id', 'joinType' => 'INNER' ]); // これを追加しました $this->belongsTo('ManagerAccounts', [ 'className' => 'Accounts', // ★ここで↑と同じAccountsモデルを指定している 'foreignKey' => 'account_id', 'joinType' => 'INNER' ]); ```