J'utilise le validateur intégré Laravel et je souhaite obtenir le premier message d'erreur
if ($validator->fails()) {
$error = $validator->messages()->toJson();
.....
}
C'est le résultat quand j'imprime une erreur
{"name":["The name must be at least 5 characters."],"alamat":["The address must be at least 5 characters."]}
Dans l'exemple ci-dessus, je souhaite obtenir la première erreur, à savoir "Le nom doit comporter au moins 5 caractères". Comment puis je faire ça?
Essaye ça:
if ($validator->fails()) {
$error = $validator->errors()->first();
}
Dans votre demande ajax, lorsque vous obtenez la data
, essayez data.name
.
Cela vous donnera le message d'erreur pour le champ name
.
$.ajax({
url: "/your-save-url",
type: "post",
data: serializedData,
success: function(data) { alert(data.name)}
});
Si la validation échoue, la méthode withErrors
peut être utilisée pour envoyer les messages d'erreur à la session. Ceci est un tableau et cette méthode partagera automatiquement $errors
avec toutes les vues après redirection.
return redirect('register')->withErrors($validator, 'login');
La variable MessageBag
peut être consultée à l'aide de l'instance de la variable $errors
:
{{ $errors->login->first('email') }}
API de formulaire docs
J'espère que c'est utile.