1

私はcakePHPで作成しようとしている投票システムに問題がありました(ここでcakephpは余分な列をクエリしているので、理由がわかりません)が、それを理解し、今は別の問題が発生しています。

私は投票システムを作成していますが、私が抱えている問題は、特定の投稿に投票できるのは1人のユーザーだけであるということです。たとえば、ユーザー1が投稿1に投票し、次にユーザー2が投稿1に投票した場合、ユーザー2の投票はユーザー1の投票を上書きします。

これが私のテーブルです

Votes
id |   user_id   | vote

Posts
id | title | body | created | modified | user_id | vote_total

アソシエーションの設定に問題があります

  1. ユーザーは多くの投稿に投票できます

  2. 投稿には多くの投票を含めることができますが、ユーザーごとに1つだけです

これは私のユーザーモデルにあります

public $hasMany = array(
    'Posts' => array( 'className'  => 'Post'),
     'Votes' => array('className'  => 'Vote')
    );

これは私の投稿モデルにあります

 public $hasMany = array( //there can be multiple votes of the same id (references post table)
    'Votes' => array('foreignKey' => 'id')
    );

私は投票管理者を持っていません。これは、PostsController.phpの投票機能を介して行われます。

4

1 に答える 1

1
public $hasMany = array( //there can be multiple votes of the same id (references post table)
    'Votes' => array('foreignKey' => 'id')
    );

間違っている。そのはず:

 public $hasMany = array( //there can be multiple votes of the same id (references post table)
'Votes' => array('foreignKey' => 'post_id')
);

したがって、Voteモデルにpost_idを追加する必要があります。

于 2012-08-04T20:36:55.347 に答える