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

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

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

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

有帮助吗?

解决方案

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

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

或许我不理解这个问题?

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top