yaotti's diary

Software is Eating the World

アソシエーション

cakephpのアソシエーションは便利。
hasOneとかhasManyとか指定しておけば、一つのモデルでfind(All)すると
関連するテーブルのデータも取ってきてくれる。

でも、複数のアソシエーションを指定しているとき、必要ないテーブルのデータまで取ってきてしまう。
そんなときにunbindModelを使う。



たとえば

  • A hasMany B,C

という関係のとき、

$this->A->findAll(hogehoge);


とすると、B、C両方のテーブルから関連するデータを持ってくる。
ここでBのデータしか必要ないときは、コントローラーで

$this->unbindModel(array("hasMany" => array("C")), false);

とすると一時的にアソシエーションを解除できる。



これが欲しかったんだよー。。。