【CakePHP】アソシエーションの一時的な解除(unbindModel)
バージョン:CakePHP 2.2.2
モデルで「belongsTo」や「hasMany」などを指定している場合に、
一時的にアソシエーションを解除する場合はunbindModelを使用します。
既にアソシエーションを定義している時に、取得するデータ量を減らしたい場合などに有効です。
1 2 3 4 5 6 7 | $this ->モデル名->unbindModel( array ( 'hasOne' => array ( 'モデル名' ), 'hasMany' => array ( 'モデル名' ), 'belongsTo' => array ( 'モデル名' ), 'hasAndBelongsToMany' => array ( 'モデル名' ), ) ); |
下記のようにモデルを複数指定することもできます。
1 2 3 4 5 | $this ->モデル名->unbindModel( array ( 'hasMany' => array ( 'モデル名1' , 'モデル名2' ), ) ); |
また、パラメーターにfalseを指定すると「unbindModel」で設定した情報が残ります。
1 2 3 4 5 6 | $this ->モデル名->unbindModel( array ( 'hasMany' => array ( 'モデル名1' , 'モデル名2' ), ), ,false ); |
※アソシエーションを追加したい場合にはbindModelを使用します。
▽参考
公式ドキュメント(アソシエーション: モデル同士を繋ぐ)