我正在尝试格式化查找条件以生成一组数据,以便稍后通过PhPExcel打印到excel视图。预期的功能是,如果start_date和end_date字段与条目匹配,则该条目包含在数组中。如果字段不匹配,则将其排除。
$my_data = $this-> RecordsMaster-> find("all", array(
'conditions' => array(
"RecordsMaster.start_date" == "RecordsMaster end_date"
)
));
问题在于上述陈述实际上并没有做任何事情。来自mySQL表的行与开始日期和结束日期不同的行包含在数据转储中以用于excel。
答案 0 :(得分:2)
问题中的条件相当于:
$my_data = $this-> RecordsMaster-> find("all", array(
'conditions' => array(
false
)
));
哪个将不返回任何记录,因为它将生成以下sql:
WHERE 0;
更正问题代码中的拼写错误仍然无法生成所需的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"
)
));