2

私はCakephp2.0を使用しています。私のモデルの関係は次のとおりです。

ユーザーは多くの投稿を持っています

投稿には多くのコメントがあります

投稿にはいいねがたくさんあります

コメントにはいいねがたくさんあります

Postテーブルに「like_count」列を追加してカウンターキャッシュを有効にし、Commentテーブルに「like_count」列を追加してカウンターキャッシュを有効にしました

Likesテーブルには次のものが含まれます。

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
    ))

その動作ファイン..

しかし今、私は各ユーザーに対して合計のようなカウント(投稿のようなカウント+コメントのようなカウント)を行う必要があります。そこで、usersテーブルにフィールドを追加して、カウンターキャッシュを有効にすることを計画しましたが、完全に打撃を受けました。usersテーブルに追加する必要のある列名と、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 に答える