找不到cakephp列:1054 user_id

时间:2015-09-06 23:56:00

标签: php mysql cakephp-3.0

我做了一张桌子:

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

现在,当我使用bin \ cake烘焙时,一切都很顺利,但是当我进入索引视图时。我收到错误Column not found: 1054 Champ 'Users.user_id'

这是Cakephp的查询:

SELECT Users.id AS `Users__id`, Users.username AS `Users__username`, Users.password AS `Users__password` FROM users Users WHERE Users.user_id = :c0 LIMIT 1

我不知道自己做错了什么,但教程博客建议不要使用user_id,而只使用id作为主键。

我的模型确实将displayField列为user_id,但它仍然无效:

 $this->table('users');
 $this->displayField('user_id');
 $this->primaryKey('user_id');

1 个答案:

答案 0 :(得分:1)

  

我不知道我做错了什么,但教程博客建议使用user_id但只使用id作为主键。

*强调我的

那么为什么 你使用它?您的表中没有user_id列,因此您看到的是预期的行为。

主键名为id,因此请参阅该列而不是user_id。此外,您不希望您的显示字段是PK,使用用户名更有意义。

$this->table('users');
$this->displayField('username');
$this->primaryKey('id');