2

我使用的是 Cakephp 2.0 我的模型关系如下:

用户有很多帖子

帖子有很多评论

帖子有很多赞

评论有很多赞

在 Post 表中我添加了一个列“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 => true。我不知道如何走得更远..

4

1 回答 1

1

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

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

您将like_count在表格中添加一列users


当然,在您的项目中,UserModel您需要为喜欢添加 HasMany。

于 2012-04-13T12:04:51.413 回答