Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP成就和声誉体系_Php_Cakephp - Fatal编程技术网

CakePHP成就和声誉体系

CakePHP成就和声誉体系,php,cakephp,Php,Cakephp,这是以前关于堆栈溢出的问题,但我还没有看到任何与CakePHP相关的内容,所以关于这个主题,我仍然相当困惑 因此,我有一个应用程序,允许用户,帖子和评论。用户可以创建帖子和评论帖子。非常简单的东西 我想做的是添加两个功能(互不相关): 成绩/徽章 名声 一般的想法是,当用户做一些事情时,比如创建一个帐户,创建一篇文章10次,或者删除文章等等。。这会增加或削弱声誉。如果符合特定标准,则创建徽章或成就 我认为这是可行的,就是要有一个成就表: id title description image

这是以前关于堆栈溢出的问题,但我还没有看到任何与CakePHP相关的内容,所以关于这个主题,我仍然相当困惑

因此,我有一个应用程序,允许用户,帖子和评论。用户可以创建帖子和评论帖子。非常简单的东西

我想做的是添加两个功能(互不相关):

  • 成绩/徽章
  • 名声
一般的想法是,当用户做一些事情时,比如创建一个帐户,创建一篇文章10次,或者删除文章等等。。这会增加或削弱声誉。如果符合特定标准,则创建徽章或成就

我认为这是可行的,就是要有一个成就表:

id
title
description
image
和一个关系表

id
achievement_id
user_id
date
然后用户将在用户表中有一个滚动整数来表示信誉

我被难倒的部分是何时以及如何在满足标准时创建这些记录,而不必在我所有的方法中插入大量的逻辑来检查各种事情等等

例如,如果我有一个简单的add post方法,我将如何实现以下目标:

  • 每成功发布一篇文章,用户声誉会增加10分
  • 为用户的第一篇帖子添加徽章
  • 为用户添加第10个帖子的徽章
  • 棘手的部分是第10篇文章的成就,因为每次发表一篇文章时,我似乎需要某种方式来检查用户发表了多少篇其他文章,以及它是否匹配一个数字,但这个数字(例如)需要从比实际代码更好的地方提取。也许是另一个包含规则的表?e、 g

    id
    title
    description
    
    然后在成就表中有一个链接,比如rule_id,来关联它,也许还有一个动作计数,所以它需要运行很多次

    以这3个项目为例,最好的方法是什么,这样我就可以在应用程序中获得其他成就和声誉。需要针对蛋糕


    谢谢

    卡梅隆,我认为你应该看看CakePhp或创建来记录你的成就

    关于“棘手的部分是10篇文章的成就”:

    这可以使用计数器缓存轻松完成


    有关此CakePHP功能的更多详细信息,请参见此处:

    您熟悉afterSave()等模型回调吗。?这就是我会使用的,不熟悉。不。如果有意义的话,可以举一个例子,说明如何将所述方法与成就和行动表结合使用来填充成就和用户表。。。似乎我需要几乎所有的事件监听器。点击我评论中的链接查看示例。它基本上是一个“事件侦听器”。每当您从控制器调用
    $this->Model->save()
    时,它都会运行您在该模型的
    afterSave()函数中输入的任何代码。但这正是困扰我的部分。a、 )我将在哪里放置afterSave代码。2.)根据这些表结构,检查是否满足了特定的条件,我会在其中添加什么内容。在模型文件中创建一个afterSave()函数。