cakePHP:查找所有查询条件问题

时间:2013-07-09 17:59:07

标签: cakephp

我正在尝试格式化查找条件以生成一组数据,以便稍后通过PhPExcel打印到excel视图。预期的功能是,如果start_date和end_date字段与条目匹配,则该条目包含在数组中。如果字段不匹配,则将其排除。

    $my_data = $this-> RecordsMaster-> find("all", array(
        'conditions' => array(
            "RecordsMaster.start_date" == "RecordsMaster end_date"
        )
    ));

问题在于上述陈述实际上并没有做任何事情。来自mySQL表的行与开始日期和结束日期不同的行包含在数据转储中以用于excel。

1 个答案:

答案 0 :(得分:2)

问题中的条件并不重要

问题中的条件相当于:

$my_data = $this-> RecordsMaster-> find("all", array(
    'conditions' => array(
        false
    )
));

哪个将不返回任何记录,因为它将生成以下sql:

WHERE 0;

不要使用key =>匹配字段的值

更正问题代码中的拼写错误仍然无法生成所需的sql - 它会生成:

WHERE `RecordsMaster`.`start_date` = "RecordsMaster end_date"

即。其中start_date是那个小字符串。

  

预期的功能是,如果start_date和end_date字段匹配条目

要生成WHERE field = otherfield,您可以指定为字符串:

$my_data = $this-> RecordsMaster-> find("all", array(
    'conditions' => array(
        "RecordsMaster.start_date = RecordsMaster.end_date"
    )
));