まとめてunbindModelするとき

まっちー

まっちー

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

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

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

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

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

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

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

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

プログラマのまっちーです。酒が大好きです。ある一定量のお酒を飲むと壊れたレディオモードに入り、同じことを繰り返す癖があります。宜しくお願いいたします。

このメンバーの記事をもっと読む