SERVICE こんな事ができます

CNTACT ご相談はお気軽に

 ABOUT US こんな会社です



2009/06/02 by マッチー

必要ないときはunbindModel

アソシエーションで関連づけられていると、上記のようにsaveallを行うと関連づけられているものも一緒にデータの登録が行われる。登録したくないと思っていてもcakeはなかなか気配り上手なやつなので、気を利かせて勝手にバリデーションやらデータの登録やらを行ってしまう。

そういうとき、unbindModelを使うと、一時的にアソシエーションを解除することができる。

たとえば、UserとImageというテーブルがhasManyで関連づけられていたとする。こういうとき、基本的にimageテーブルにはuser_idみたいなフィールドがあると思われるが、何のデータも登録したくないと思っていても、user_idにはデータが登録されてしまう。

こんな感じでアソシエーションを解除すると、saveallを実行してもimageテーブルにはデータが登録されない。

逆に一時的にアソシエーションを設定したい場合にはbindModelを使えばいける。