CakePHP найти по диапазону дат? - PullRequest
3 голосов
/ 20 января 2012

Я пытаюсь получить купоны, которые еще не истекли. У меня есть это в моем контроллере:

public function coupons() {
    $this->paginate['Coupon']=array(
        'limit'=>9,
        'order'=>'RAND()',
        'conditions'=>array(
        'Coupon.end_date'=>??????)
    );
    $c=$this->paginate('Coupon');
    $this->set('allcoupons', $c);
}

Мне нужно вернуть все записи, срок действия которых не истек на сегодняшний день. end_date в формате ДАТА. Я не знаю, как попросить торт посмотреть на end_date и сравнить его с сегодняшним днем, И сделать это внутри метода пагинации.

Ответы [ 2 ]

8 голосов
/ 20 января 2012

Вам просто нужно правильно отформатировать дату

'Coupon.end_date >' => date('Y-m-d H:i:s')
0 голосов
/ 12 марта 2013

Возможно, вам нужно использовать time helper функцию dayAsSql в вашем контроллере, чтобы у вас было что-то вроде

public function coupons() {
    $expire_interval = "3 days";
    $this->paginate['Coupon'] = array(
        ...
        'conditions' => 
            ## called via TimeHelper
            $this->Time->dayAsSql($this->Time->fromString($expire_interval), 'end_date')
        )
    );
    ....
}
...