2012-04-13 85 views
2

我使用CakePHP 2.0我的模型关系如下:CakePHP的Countercache - 逻辑问题

用户有很多帖子

张贴有许多评论

邮政有很多喜欢

评论有很多像

在帖子表格我添加一列“LIKE_COUNT”并启用countercache 和 在评语表,我添加一列“LIKE_COUNT”并启用countercache

喜欢表包含:

ID,POST_ID,comment_idu邀请,USER_ID

和型号如下:

public $belongsTo = array(
    'Post' => array(
     'className' => 'Post', 
     'foreignKey' => 'post_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '', 
     'counterCache' => true 
    ), 
    'Comment' => array(
     'className' => 'Comment', 
     'foreignKey' => 'comment_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '', 
     'counterCache' => true 
    )) 

它的工作很好..

,但现在我需要做的总像数(后像数+评论像 数)为每个用户。所以我计划在用户表中添加一个字段,并且启用countercache但是完全被攻击..将会在列表 名称中添加用户表,并且我需要将Countercache添加到 => true。我不怎么走得更远..

回答

1

将以下内容添加到您的$ belongsTo数组中。

'User' => array(
     'className' => 'User', 
     'foreignKey' => 'user_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '', 
     'counterCache' => true 
    ), 

你会在users表中添加like_count列。


而在你的UserModel,你需要添加一个HasMany当然喜欢。

+0

其作品..以及 – AnNaMaLaI 2012-04-13 13:53:05

+0

很高兴帮助! – Joep 2012-04-13 14:15:01