CakePHP:1054未知专栏' User.id'在'字段列表'

时间:2014-11-26 12:28:21

标签: cakephp

我正在学习CakePHP。在那里,我遇到了以下问题:

我有一个名为评论的表格,其中包含字段comment_id,comment_title,comment_text,comment_date&用户身份。 我还有用户表,其中包含字段user_id,user_name,user_email,created_date。

然后在我的用户模型中,我尝试创建一个hasMany关系,如:

var $hasMany = array(
    'Comment' => array(
    'className' => 'Comment',
    'foreignKey' => 'user_id'
    ), );

但这给了我一个错误

  

1054'字段列表'中的未知列'User.id'

我知道这是因为我的用户表中没有 id 列,而是 user_id

现在,我的问题是:有没有办法解决这个问题,而无需重命名用户表的 user_id 字段?因为这需要在我使用 user_id

的每个现有代码中进行更改

3 个答案:

答案 0 :(得分:2)

用户模式中设置:

public $primaryKey = 'user_id';

如果您需要创建一些关系和模型,控制器,视图..您可以使用 Bake shell,请参阅:http://book.cakephp.org/2.0/en/console-and-shells/code-generation-with-bake.html

答案 1 :(得分:1)

为避免此类错误,请在数据库中使用外键约束。 Cakephp自动添加表之间的关联。

答案 2 :(得分:-1)

public $hasMany = array(
    'Comment' => array(
        'className' => 'Comment',
        'foreignKey' => 'user_id',
        'conditions' => array('Comment.user_id' => 'User.user_id'),
        'dependent' => true
    )
);