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:
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?
Pourquoi la validation échoue-t-elle si la valeur est définie sur null
?
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?
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 valeursnull
.