0

CakePHP 2.0 アプリケーションで、特定の顧客と特定の契約のレコードのリストを取得するクエリがあり、すべて過去 3 か月以内のものです。

$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 に答える