CakePHP查找条件生成SQL“WHERE ... AND 1”

时间:2011-06-13 12:31:09

标签: cakephp cakephp-1.3 cakephp-appmodel

这是我的代码:

    $attendances = $this->Pupil->Attendance->find('all',
        array(
            'conditions'=>array(
                'Pupil.group_id'=>$group,
                'Attendance.date' >= $start,
                'Attendance.date' <= $end
                )
            )
        )
    );

以下是生成的SQL:

SELECT [many different fields from a few tables] WHERE `Pupil`.`group_id` = 7 AND 1

$ start的值是2011-06-06,结束是2011-06-10(在视图中使用debug()验证)。

为什么Cake生成条件“AND 1”,并省略我的条件?

感谢阅读!

1 个答案:

答案 0 :(得分:1)

好的,我今天非常慢,我为侮辱每个人的智慧而道歉。

问题当然是&gt; =和&lt; =不在引号内。

对于任何有类似脑死亡时刻的人来说,正确的代码是

    $attendances = $this->Pupil->Attendance->find('all',
        array(
            'conditions'=>array(
                'Pupil.group_id'=>$group,
                'AND'=>array(
                    'Attendance.date >=' => $start,
                    'Attendance.date <=' => $end
                )
            )
        )
    );