【发布时间】:2011-11-02 22:50:34
【问题描述】:
我正在开发一个项目,其中包括可以评论的文章(当然,cmets 存储在单独的表中)。我想对每个评论的字段执行预逻辑,无论它们在整个应用程序中加载到哪里。我要执行的数据逻辑来自自定义编写的组件。
对我来说,可以在全球范围内实现这一点的合乎逻辑的地方是评论模型,但我可能错了。 如果我可以使用模型中的组件,我什至不是 100%,但我一直在尝试使用 afterFind() 回调函数来执行此逻辑:
function afterFind($results) {
foreach ($results as $key => $val) {
if (isset($val['Comment']['created'])) {
$results[$key]['Comment']['created'] = $this->Dateconvert->howLongAgo($val['Comment']['created']);;
}
}
return $results;
}
我已经尝试从这个函数内部回显,它实际上似乎没有被调用,但搜索并没有显示任何函数,但我相信 afterFind() 最能说明我想要实现的目标.
所以我正在寻找一种解决方案,我可以在文章 cmets 上执行加载后逻辑,无论它们是从与 cmets 关联的其他控制器还是在 cmets 控制器中加载的。基本上是一个全球性的一击解决方案:D
【问题讨论】:
-
你在模型中有 afterFind() ,对吧?它应该在你调用 find() 之后调用。
标签: cakephp components models