CakePHP模型和查询麻烦

时间:2013-12-01 05:48:40

标签: mysql cakephp

我正在使用CakePHP 2.3.8而我在使Cake正确搜索值方面遇到了麻烦。它似乎不区分大小写。我正在搜索'User.id',查询结果显示为'user.id'

users table
id  |   username   | password  |  email   | created

我正在尝试在ReservationController中找到用户的创建日期

$this->loadmodel('User');
$date = $this->User->find('first',array(
                                    'conditions' => array(
                                        'User.id' => $id    //note: 'id' => $id gives the same results
                                     )
                          ));

我收到以下错误

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'user.id' in 'where clause'
SQL Query: SELECT `User`.`created` FROM `TestDB`.`users` AS `User` WHERE `user`.`id` = 1 LIMIT 1

当我将查询复制到PHPMyadmin并将'user.id'更改为'User.id'时,它可以正常工作。尽管我在查询中将大写字母大写,但为什么Cake会使用小写字母?如果我将其更改为'Users.id',那么将使用uppsercause U来搜索并添加s,但这不是我想要的。

我尝试使用public $primaryKey = 'id';向我的用户模型添加主键但是没有做任何事情。目前,我的用户模型中没有任何主键引用,所以我不确定它在哪里/为什么决定搜索'user.id',即使我在搜索中特别引用'User.id'。实际上,我的用户模型中唯一的用于表单验证。

1 个答案:

答案 0 :(得分:0)

如果是同一模型,则不需要在Query中添加modelName .. Retriving data

$this->loadModel('User');
$date = $this->User->find('first',array(
                                    'conditions' => array(
                                        'id' => $id
                                     )
                          ));