Je l'utilise pour modifier les informations du compte d'utilisateur:
$this->validate($request, [
'password' => 'min:6',
'password_confirmation' => 'required_with:password|same:password|min:6'
]);
Cela a bien fonctionné dans une application Laravel 5.2, mais ne fonctionne pas dans une application 5.4.
Qu'est-ce qui ne va pas ici ou quelle est la bonne façon de ne rendre obligatoire la password
que si le champ password
ou password_confirmation
est défini?
Vous pouvez utiliser la règle de validation confirmé .
$this->validate($request, [
'name' => 'required|min:3|max:50',
'email' => 'email',
'vat_number' => 'max:13',
'password' => 'required|confirmed|min:6',
]);
Essayez de le faire de cette façon, cela a fonctionné pour moi:
$this->validate($request, [
'name' => 'required|min:3|max:50',
'email' => 'email',
'vat_number' => 'max:13',
'password' => 'min:6|required_with:password_confirmation|same:password_confirmation',
'password_confirmation' => 'min:6'
]);`
On dirait que la règle a toujours la validation sur la première entrée de la paire ...
essayez confirmée et sans la règle password_confirmation:
$this->validate($request, [
'name' => 'required|min:3|max:50',
'email' => 'email',
'vat_number' => 'max:13',
'password' => 'confirmed|min:6',
]);
Essaye ça:
'password' => 'required|min:6|confirmed',
'password_confirmation' => 'required|min:6'
Il devrait suffire de faire:
$this->validate($request, [
'password' => 'nullable,min:6,confirmed',
]);
Rendez le mot de passe facultatif, mais nécessite, si présent, une confirmation du mot de passe correspondant