2016-10-17 5 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; 
}], 
関連する問題