CakePHPのアソシエーションを動的に追加・削除する方法
2014/05/28
CakePHPのFind時などにアソシエーションを動的に追加・削除する方法。
忘備録としてポストします。
CakePHPのバージョンはは1.3です。
アソシエーションを動的に追加・削除
追加例
Product モデルに Place(産地) を hasOne で追加する場合
1 |
$this->Product->bindModel(array('hasOne'=>array('Place')), true); |
一時的にアソシエーションを追加する場合は bindModel() の第二引数に true を、恒久的な追加には、false を指定します。
削除例
Product モデルに設定している hasOne の Place(産地) を解除する場合。
1 |
$this->Product->unbindModel(array('hasOne'=>array('Place')), true); |
追加と同様、一時的にアソシエーションを解除する場合は、unbindModel() の第二引数に true を、恒久的な解除には、false を指定します。
pagination を使用している場合は、unbindModel() の第2引数は false をセットするとうまくいくようです。
[tgAmazonItemLookup asin="B009J0NWCK" related="1"]