从另一个CakePHP控制器访问方法,或更好的替代方案!

时间:2009-10-21 13:19:42

标签: php model-view-controller cakephp controller

我正在为我的网站创建一个“奖励”系统,以鼓励社区狂热,就像堆栈溢出使用徽章一样。

该网站是在CakePHP中构建的,我创建了一个奖励模型,控制器等 - 目前用于计算用户是否有奖励的方法包含在奖励控制器中。

但是,我无法决定更新奖励的最佳方式 - 例如,您发出一定数量的评论并获得此奖项,CRON将不够用,否则用户可能会访问他们的个人资料期待在CRON运行之前没有奖励。

我在考虑使用requestAction()调用方法来更新Award控制器中的奖励,但这并不适合MVC设计模式,并且认为必须有更好的方法!

2 个答案:

答案 0 :(得分:1)

如果获得奖励的唯一方法是通过发表评论,我只需覆盖Model :: save以确定是否添加了新评论。如果是,请拨打奖励模型以更新奖励。

如果有多个操作可以给予奖励,您可以使用每个模型执行此检查,或修改AppModel以便每次保存都会调用checkNewAwards()......

或许我不理解这个问题?

答案 1 :(得分:1)

在帮助器中创建一个函数并将其放在布局中,以便每次渲染布局时都会运行。