2012-11-26 2 views
0

Как добавить правило минимальной даты в модель?Yii min date validation rule

Пример:

У меня есть столбец dt_ini как дата, что мне нужно, чтобы ограничить вход в качестве D + 7, на создание.

Если сегодня: 1 октября 2012

минимум действительна дата создания будет: 8 октября 2012 года

В противном случае, я бы бросить ошибку проверки, как: Ваша дата должна быть по крайней мере, Через 7 дней.

код я ожидал бы что-то вроде этого: (это не испытано, и, вероятно, не будет работать)

public function rules(){ 
     return array('dt_ini', 'date', 'minDate' => '+7'), 
    } 

Спасибо.

ответ

0

this Что вы ищете?

+0

Не совсем. Эта ссылка объясняет, как работает валидация на Yii. Но он не добавляет определенное правило проверки даты с минимальной датой. – Flavio

0

Создание пользовательских действительное правило следующим образом:

class YourModel extends CActiveModel 
{ 
    // some.... 

    public function rules(){ 
     return array('dt_ini', 'dateValid', 'minDate' => '+7 day', 'on' => 'create'); 
    } 

    public function dateValid($attribute, $params) 
    { 
     $valid=null; 
     $today = date('Y-m-d', time()); 
     if(isset($params['minDate'])) 
      $valid = date('Y-m-d', strtotime($params['minDate'])); //+7 day 

     if(!is_null($valid)) 
     { //for increamental date 
      if($this->dt_ini > $valid || $this->dt_ini < $today) 
       $this->addError($attribute, 'enter error message');  
     } 
    } 
}