当我的查询失败时,我很困惑:
$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,则不再存在问题。
这里仍然有一个问题,我想,这就是 - 为什么“列表”不会扼杀一个模糊的列名称,其中“第一”或“所有”在火焰中死亡?与它有关的是一种更简单的查询,不需要弄乱相关的表,我希望......
答案 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无法解决为什么他们的数据库查询失败,那么在相关表中查找含糊不清的列名可能会有所帮助......