2016-10-17 4 views
0

Я хочу сохранить модель задачи, но не могу сделать это без определения даты. У меня есть boolean атрибут allDay (флажок в поле зрения), и если он установлен в формате ИСТИНА, то формат должен быть d-m-Y; else 'd-m-Y H: m'. Как определить это условие в методе rules()?Как установить формат даты в зависимости от входящего другого значения атрибута в модели Yii2

Следующая код не работает:

public function rules() { 
    return [ 
     [['title', 'user_id'], 'required'], 
     [['description'], 'string'], 
     [['start', 'end'], 'date', 
      'format' => $this->allDay ? 'php:d-m-Y' : 'php:d-m-Y H:i'], 
    ]; 
} 

ответ

0

Вы можете использовать inline validator для этого или установить condition в правилах. Для этого необходимо:

[['start', 'end'], 'date', 'format' => 'php:d-m-Y', 'when' => function ($model) { 
    return $model->allDay; 
}], 
[['start', 'end'], 'date', 'format' => 'php:d-m-Y H:i', 'when' => function ($model) { 
    return !$model->allDay; 
}],