J'utilise la fonction d'enregistrement laravel pour enregistrer un utilisateur. J'ai ajouté une case à cocher dans laquelle l'utilisateur doit accepter les termes et conditions. Je souhaite que l'utilisateur s'inscrive uniquement lorsque la case est cochée. Peut J'utilise la validation 'obligatoire' dans laravel? Voici ma fonction de validation:
return Validator::make($data, [
'firstName' => 'required|max:255',
'lastName' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
'checkbox' =>'required',
]);
Lorsque j'utilise la fonction comme celle-ci, laravel donne l'erreur requise pour la case à cocher même si elle est cochée.
Ceci est le html de la case à cocher
<input type="checkbox" name="checkbox" id="option" value="{{old('option')}}"><label for="option"><span></span> <p>Ik ga akkoord met de <a href="#">algemene voorwaarden</a></p></label>
J'espère que vous pouvez m'aider!
Cela fonctionnera, assurez-vous simplement que la valeur d'entrée ne sera pas une chaîne vide ou fausse. Et 'checkbox' => 'required' est ok tant que la clé est la valeur de l'attribut de nom d'entrée.
Utilisez la règle accepted
.
Le champ en cours de validation doit être oui, activé, 1 ou vrai. Ceci est utile pour valider l'acceptation des "Conditions d'utilisation".
Échantillon pour votre cas:
return Validator::make($data, [
'firstName' => 'required|max:255',
'lastName' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
'checkbox' =>'accepted'
]);
Je viens d'avoir une grande frustration, car le code que j'utilise renvoie la valeur de la case à cocher comme une valeur booléenne.
Si vous avez une situation similaire, vous pouvez utiliser la règle suivante:
[
'checkbox_field' => 'required|in:1',
]
Utilisez required_without_all pour la case à cocher:
return Validator::make($data, [
'firstName' => 'required|max:255',
'lastName' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
'checkbox' =>'required_without_all',
]);
Voir: https://laravel.com/docs/5.1/validation#available-validation-rules
Vos règles de validation doivent être corrélées avec les attributs name
de vos champs de formulaire html:
return Validator::make($data, [
'firstName' => 'required|max:255',
'lastName' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
'option' =>'required', //not checkbox
]);