两个类似的CakePHP数据检索查询 - 我缺少什么?

时间:2011-06-10 18:01:14

标签: mysql cakephp

当我的查询失败时,我很困惑:

$results = $this->Event->find('first', array('conditions'=>array(
    'user_id' => $user_id,
    'home_num' => $num
)));
var_dump($user_id, $num, $results); die;

输出:

string(4) "5166" string(5) "12931" bool(false)

将其简单地改为:

$results = $this->Event->find('list', array('conditions'=>array(
    'user_id' => $user_id,
    'home_num' => $num
)));
var_dump($user_id, $num, $results); die;

给出:

string(4) "5166" string(5) "12931" array(1) { [1569006]=> string(22) "User favourited a home" }

关于我如何使用find('first'),我在这里缺少什么?

已编辑添加:

所以问题似乎在于模糊的列名。如果我更改我的代码以查找Event.user_id,而不是模糊的user_id,则不再存在问题。

这里仍然有一个问题,我想,这就是 - 为什么“列表”不会扼杀一个模糊的列名称,其中“第一”或“所有”在火焰中死亡?与它有关的是一种更简单的查询,不需要弄乱相关的表,我希望......

2 个答案:

答案 0 :(得分:0)

以下结果会产生什么结果?

$results = $this->Event->find('all', array('conditions'=>array(
    'user_id' => $user_id,
    'home_num' => $num
)));

我唯一的猜测是它没有找到任何结果,这就是它返回false的原因。

至于为什么'list'给你一个很好的项目数组,只是一个猜测,但它可能有一组不同的选项与它混为一谈,或者它可能忽略了当前那些。

答案 1 :(得分:0)

嗯,为了对这个问题提供真正的答案:

问题在于模糊的列名。如果我更改了我的代码以查找Event.user_id,而不是模糊的user_id,则不再存在问题。

如果未来的CakePHPers无法解决为什么他们的数据库查询失败,那么在相关表中查找含糊不清的列名可能会有所帮助......