アソシエーション先のモデルで使用しているビヘイビアのafterFindを動かす方法
デフォルトだと何故かビヘイビアでafterFind定義していても動いてくれない。
ちょっと不便だったので動くようにしてみました。
<?php class AppModel extends Model { function afterFind($results,$primary=false) { $results = parent::afterFind($results,$primary); if(!$primary) { $params = array($results,$primary); $options = array('modParams' => true); $results = $this->Behaviors->trigger($this,'afterFind',$params,$options); } return $results; } } ?>
モデルクラスはBehaviorsCollectionモデルというのをプロパティに持っているようで
BehaviorCollectionモデルのtriggerメソッドは、指定したメソッドが使用しているビヘイビアにあれば
一気に呼び出してくれるもののようです。
triggerメソッドに関してはhttp://api.cakephp.org/で見てみれば大体の雰囲気はわかると思います。
とりあえず僕はこれで今のところ困ってません。
しかしなぜafterFindは動いてくれないんだろ。。
わざわざ第2引数にprimaryフラグがあるので何か理由があるのかもしれませんけど・・・。