web-dev-qa-db-fra.com

Laravel 5.3 La validation échoue lorsque les variables sont nulles

Depuis la mise à niveau laravel de 5.1 à 5.3, j'ai quelques problèmes étranges avec la validation.

Lorsque je poste des données comme celle-ci:

firstName    null

Et les règles de validation sont comme ceci:

$validator = Validator::make($postData, [
              'firstName'           => 'string|max:255',
              'lastName'            => 'string|max:255'
            ]);

Ce qui précède échoue avec les messages quelque chose comme "The XYZ must be a string.". Ce que je ne comprends pas, c'est:

  1. Pourquoi la validation échoue-t-elle lorsqu'elle n'est pas définie comme required? Cela signifie qu'il doit l'ignorer et ne pas générer d'erreur si la valeur est vide, non?

  2. Pourquoi la validation échoue-t-elle si la valeur est définie sur null?

  3. Pourquoi la validation échoue-t-elle lorsque le paramètre n'est pas envoyé du tout? (comme le lastName qui n'est pas du tout publié)

Quelque chose a-t-il changé dans les validations Laravel 5.3?

18
Neel

Ajouter nullable règle:

'firstName' => 'string|max:255|nullable',
'lastName' => 'string|max:255|nullable'

Le champ en cours de validation peut être null. Ceci est particulièrement utile lors de la validation de primitives telles que des chaînes et des entiers pouvant contenir des valeurs null.

53
Alexey Mezenin