2016-10-17 48 views
0

我想保存任務模型,但不能在沒有定義日期的情況下執行。 我有布爾屬性allDay(複選框在視圖中),如果它設置爲TRUE日期格式應爲d-m-Y;否則'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; 
}], 
相關問題