1

我在尝试在 cakePHP 中创建的投票系统遇到问题(在这里找到cakephp 正在查询额外的列,我不知道为什么),但我想通了,现在我遇到了另一个问题。

我正在制作一个投票系统,我遇到的问题是只有一个用户可以对给定的帖子投票。例如,如果用户 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')
);

所以你必须在投票模型中添加 post_id 。

于 2012-08-04T20:36:55.347 回答