0

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

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

问题在于上面的语句实际上并没有做任何事情。mySQL 表中开始和结束日期不同的行包含在数据转储到 Excel 中。

4

1 回答 1

2

问题中的条件意义不大

问题中的条件等价于:

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

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

WHERE 0;

不要使用 key => value 来匹配字段

更正问题中代码中的拼写错误仍然不会生成所需的 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"
    )
));
于 2013-07-09T19:44:12.797 回答