エンジニア引き止めセミナー資料
エンジニア引き止めセミナー資料

まとめてunbindModelするとき

まっちー

CakePHPでModelにアソシエーションの設定を書いた場合、必要のないところでは自分でunbindModelメソッドを使うことになるわけですが、紐づいているテーブルがたくさんある場合とか、後々仕様が変更になって新しいテーブルを紐づけたりした場合とか、いちいちunbindModelに全モデル名を列挙するのはめんどうですよね。特に仕様変更によってunbindModelの中身を修正する必要が出て来た場合、いろんな箇所でunbindModelしてたら、いちいち探して修正するのは効率も悪いです。

そんなときは、recursiveを-1にするといいみたいです。

$params = array('recursive' => -1);
$data = $this->Model->find('all', $params);

これなら、後で紐づき方がどう変わろうが、関係ないです。

ただし、特定のモデルだけをbindModelしたい場合は、この方法ではダメです。そういうときはコンテイナブルを使うといいみたいですが、それはまた別の話。

というか、俺自身がまずコンテイナブルを上手く扱えない(よく分かっていない)ので、記事にするのは早いww

もちっと勉強しておきます。まだ慌てるような時間でもないので。

3 0 0 0