ビヘイビアの実行は基本、モデルが特定のタイミングで実行されます。
自動で実行してくれることは大変便利で無駄なコーディングをしなくてすむ利点があります。
しかし任意のタイミングで実行してほしい場合もあります。
そんな場合はビヘイビアを途中でつけたり外したりすることがCakePHPでは可能にできてます。
ビヘイビアを途中でつけたり外したりする場合はコントローラー側にコーディングしていきます。
前回のエンコードビヘイビアを例に記述すると
ビヘイビアをつける場合は
$this->モデル名->Behaviors->attach(‘Encoding’,array(‘to’=>’EUC-JP’,’save’=>’utf8′));
と記述することで任意のタイミングでビヘイビアを取り付けることが可能です。
またビヘイビアを外す場合は
$this->モデル名->Behaviors->detach(‘Encoding’);
と記述することで任意のタイミングで取り外すことができます。
エンコードビヘイビアではこの指定方法はあまりメリットはありませんが
独自のビヘイビアを考える際はこの方法もあることを念頭にビヘイビアを設計すると
ビヘイビアの利便性が向上するかもしれません。
コメント