0

我在 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"))代码的替代方案。

4

1 回答 1

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'
));
于 2013-08-01T20:21:43.810 回答