我正在学习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 ?
的每个现有代码中进行更改答案 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
)
);