以前のバージョンのCakePHPでは、アソシエーションを一時的にTable::bindModel('SomeModel');
に変更することができましたが、v3でこれを行う方法を理解できません。CakePHP v3で即座にアソシエーションを削除する方法
テーブルが存在する前に書き込まれた古い移行を実行するとエラーが発生するため、テーブルクラスで定義されているhasManyの関連付けを一時的に無効にしたいとします。私は移行の問題を完全には理解していませんが、Tableクラスの関連付けをコメントアウトするとすぐに消え去ります。
class AgenciesTable extends Table
{
public function initialize(array $config)
{
parent::initialize($config);
$this->table('agencies');
$this->displayField('full_name');
$this->primaryKey('id');
$this->addBehavior('Timestamp');
$this->hasMany('Routes');
これは単なる推測ですが、cake3では実装されていないと思います。理由は、あなたがfind()呼び出しでテーブルを '含む'まで、ケーキが実際に関係を呼び出さないことが原因かもしれません。したがって、Routesを含むfind()呼び出しがない場合、akeはそのテーブルの存在をチェックしません。 – arilia