我在CakePHP 2.0应用程序中有一个查询,它检索特定客户和特定合同的记录列表,所有这些都在过去三个月内完成:
$jobsheets = $this->Jobsheet->find('all', array(
'conditions' => array(
'Jobsheet.contract' => $contractid,
'Jobsheet.deleted' => '0',
'Jobsheet.closed' => '0',
'Jobsheet.jobdate >' => date('Y-m-d', strtotime("-3 month"))
),
'recursive' => 2,
'order' => 'Jobsheet.jobdate DESC'
));
然而,这已经证明是有问题的,我被要求实施替代方案。我可以用SQL查询的形式编写替代方法,但我想尽可能多地坚持使用CakePHP的查询构建器。如果这是不可能的,那么我将选择SQL路由。但就目前而言,我很欣赏date('Y-m-d', strtotime("-3 month"))
代码的替代方案。
答案 0 :(得分:2)
$jobsheets = $this->Jobsheet->find('all', array(
'conditions' => array(
'Jobsheet.contract' => $contractid,
'Jobsheet.deleted' => '0',
'Jobsheet.closed' => '0',
'Jobsheet.jobdate' => 'DATE_SUB(NOW(), INTERVAL 3 MONTHS)'
),
'recursive' => 2,
'order' => 'Jobsheet.jobdate DESC'
));