mysql - CakePHP模型和查询问题

标签 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 将 u 小写,即使我在查询中将其大写?如果我将其更改为“Users.id”,蛋糕将使用大写的 U 进行搜索并添加 s,但这不是我想要的。

我尝试使用 public $primaryKey = 'id'; 将主键添加到我的用户模型中,但这没有任何作用。目前,我的用户模型中没有任何主键引用,因此我不确定它在哪里/为什么决定搜索“user.id”,即使我在搜索中特别引用了“User.id”。事实上,我的用户模型中唯一的东西就是表单验证。

最佳答案

如果是同一型号,则无需在查询中添加 modelName.. Retriving data

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

关于mysql - CakePHP模型和查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20309155/

相关文章:

javascript/jquery 更新多个选择框选项

CakePHP - 基于 URL 的数据库配置

mysql - 在更新时创建触发器以将旧值插入到 MYSQL 中的其他表中

Mysql之类的查询跳过特殊字符

php - cakePHP:如何更改表单元素的 ID(使用表单助手)?

mysql - 在 CakePHP 中查询大型 i18n 表很慢

mysql - 从与 CakePhp 中的外键关联的两个表中检索数据

mysql - 使用 Perl/DBI 在 MySQL 表中截断 utf-8 字符串

php - 使用 PHP 变量创建 mysql 表

php - 千城万户的关系,什么才是正确的做法?