我正在开发一个项目,其中包括可以评论的文章(当然,评论存储在单独的表中)。我想在每个评论的字段上执行预逻辑,无论它们在整个应用程序中加载。我想要执行的数据逻辑来自自定义编写的组件。
对我来说这可以在全球范围内实现的合理位置来自评论模型,但我可能错了。 如果我可以使用模型中的组件,我甚至不是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()最好说明我想要实现的
所以我正在寻找一个解决方案,我可以在文章评论上执行后加载逻辑,无论是从其他带有注释关联的控制器加载还是在注释控制器中加载。基本上是一个全球性的解决方案:D
答案 0 :(得分:0)
cakephp表示组件用于视图的模型和助手的控制器和行为......
首先,您可能知道您可以在任何地方使用它的任何部分,因为蛋糕仍然是PHP,但不推荐...如果是一个函数库,您可能希望将它放在libs文件夹中并从那里访问它。
如何,轻松使用App :: import('component','nameComponent');组件可以是lib,controller等。
话虽如此,afterFind是加载东西后的好地方,请记住,当使用find时,此函数仅调用,如果使用,则不会调用任何其他类似查询或保存或更新。
希望这可以帮助你:)