2014-01-12 2 views
0

как я могу проверить, существуют ли даты, опубликованные в форме пользователя, в диапазоне до сохранения? Предположим, чтобы проверить разные диапазоны дат сценариев. Ниже приведена только одна из них. Если он не попадает в диапазон, он затем публикует сообщения.проверить, не совпадают ли даты в диапазоне до yii

есть ли лучший способ сделать это?

$model = Table::model(); 
    $criteria = new CDbCriteria; 
    //this is where i don't know how to get the values ($start,$end) from user before posting 

    $criteria->addCondition('start_date < '.$start); 
    $criteria->addCondition('end_date > '.$end); 

ответ

1

Вы должны создать пользовательскую функцию проверки:

В правилах добавления: это правила будут работать как для вставки и обновления.

public function rules() 
{ 
    return array(
     array('dateField', 'myCheckdate',), 
    ); 
} 

В пользовательской функции проверки, вы можете применить код, чтобы проверить указанный диапазон дат

public function myCheckdate($attribute,$params) 
    { 
     if(!$this->hasErrors()) 
     { 
      if(Condition == false) // place your condition here 
      { 
       $this->addError($attribute,'The date is incorrect.'); 
      } 
     } 
    } 
Смежные вопросы