我做了一张桌子:
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 bake时,一切都很好,但当我转到index视图时。我得到一个错误
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列为用户id,但仍然不起作用:
$this->table('users');
$this->displayField('user_id');
$this->primaryKey('user_id');
最佳答案
我不知道我做错了什么,但是教程博客建议不要使用user_id
而是使用id
作为主键。
*强调我的
那你为什么要用它呢?表中没有user_id
列,因此您看到的是预期的行为。
主键名为id
,因此请参考该列而不是user_id
。另外,您不希望显示字段是PK,使用用户名更有意义。
$this->table('users');
$this->displayField('username');
$this->primaryKey('id');
关于php - cakephp找不到列:1054 user_id,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32429448/