【发布时间】:2015-09-06 23:56:00
【问题描述】:
我已经做了一张桌子:
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 时一切正常,但当我进入索引视图时。我收到一个错误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');
【问题讨论】:
-
注意区分大小写:
CREATE TABLE IF NOT EXISTS **users**与SELECT Users.id AS **Users__id** -
你的别名有两个下划线,
Users__id,你的where没有,Users.user_id。同样在 cakephp 中,您可以在 where 子句中使用别名? -
@moskito-x 检查表别名。
-
@chris85 别名列是ORM使用的,不需要在
WHERE子句中使用,实际上你不应该使用它们。 -
@ndm :
SELECT Users.id ASUsers__id,..
标签: php mysql cakephp-3.0