2009/06/02 by マッチー
必要ないときはunbindModel
アソシエーションで関連づけられていると、上記のようにsaveallを行うと関連づけられているものも一緒にデータの登録が行われる。登録したくないと思っていてもcakeはなかなか気配り上手なやつなので、気を利かせて勝手にバリデーションやらデータの登録やらを行ってしまう。
そういうとき、unbindModelを使うと、一時的にアソシエーションを解除することができる。
たとえば、UserとImageというテーブルがhasManyで関連づけられていたとする。こういうとき、基本的にimageテーブルにはuser_idみたいなフィールドがあると思われるが、何のデータも登録したくないと思っていても、user_idにはデータが登録されてしまう。
こんな感じでアソシエーションを解除すると、saveallを実行してもimageテーブルにはデータが登録されない。
逆に一時的にアソシエーションを設定したい場合にはbindModelを使えばいける。









