2017-10-01 3 views
1

Créé un modèle avec un champ dateTime appelé 'until', le nom n'est pas important juste qu'il s'agit d'une date et heure. Voici sa validation dans les règles du modèle.Yii2 Format du format de validation du modèle DateTime

['until', 'datetime', 'format' => 'Y-m-d H:i:s'], 

Plus tard, après avoir instancié le modèle et mis à jour le champ, j'obtiens une erreur de validation.

$model->until = '2017-10-15 14:30:04'; 
$eventRepeat->validate(); 
$errors = $model->errors; 

erreurs $ [ 'jusqu'à'] [0] sera alors 'Le format de Until est invalide.'

Je ne m'attendais pas à cette erreur.

+0

Cela se produit encore si je change le format: 'aaaa-mm-jj hh: mm: ss' –

Répondre

1

Comme dans Yii2 Doc

Format:. Le format de date/heure que la valeur en cours de validation devrait être dans ce peut être un modèle de temps de date comme décrit dans le manuel de soins intensifs. Alternativement, il peut s'agir d'une chaîne préfixée php: représentant un format pouvant être reconnu par la classe PHP Datetime.

http://www.yiiframework.com/doc-2.0/guide-tutorial-core-validators.html#date

essayez d'utiliser

['until', 'datetime', 'format' => 'php:Y-m-d H:i:s'], 
+0

Thank you! Cela m'a aidé. J'ai également ajouté une utilisation du formateur. voir ci-dessous –

0

Résolu!

définir le format de

php: Y-m-d H: i: s

et utilise le module de formatage.

$model->until = Yii::$app 
      ->formatter 
      ->asDatetime(
       new DateTime('NOW + 2 weeks'), 
       'php:Y-m-d H:i:s' 
      );