cakephp行为afterFind没有调用相关模型

Tom*_*mba 6 cakephp behavior callback cakephp-1.3

我正在使用afterFind函数来修改find​​函数中的数据.它工作正常.如果我将afterFind函数移动到一个行为(在插件中)它仍然有效,但仅当感兴趣的模型是主要模型时,即当模型属于另一个模型时不调用它.这有什么办法吗?我正在使用蛋糕1.3.4.这是行为的简化版本:

class ChemicalStructureBehavior extends ModelBehavior {
    function afterFind(&$model, $results, $primary) {
        foreach ($results as &$unit) {
            // format chemical formula (with subscripts)
            $unit[$model->alias]['chemical_formula_formatted'] = preg_replace('/([0-9]+)/i', '<sub>$1</sub>', $unit[$model->alias]['chemical_formula']);
        }

        return $results;
    }
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*son 2

我想我会做两件事之一,具体取决于代码块的应用方式:

  1. 通用版本:不使用行为,但将方法块包含在AppModel::afterFind
  2. 手术版本:使用一种行为并将其附加到需要共享功能的每个模型上。