La solution par défaut est triviale:
@if (count($errors) > 0)
<ul id="login-validation-errors" class="validation-errors">
@foreach ($errors->all() as $error)
<li class="validation-error-item">{{ $error }}</li>
@endforeach
</ul>
@endif
et je peux inclure errors.blade.php
n'importe où.
Existe-t-il un moyen d'extraire chaque élément et de l'afficher à côté du champ de saisie contenant la valeur qui a échoué?
Je suppose que cela m'obligerait à définir un grand nombre d'instructions conditionnelles if
à côté de chaque entrée, non?
Comment trier ce problème? Pourriez-vous me donner des exemples?
Merci.
Vous pouvez utiliser quelque chose comme ceci:
<div class="form-group {{ $errors->has('name') ? 'has-error' : ''}}">
<label for="name" class="col-sm-3 control-label">Name: </label>
<div class="col-sm-6">
<input class="form-control" required="required" name="name" type="text" id="name">
{!! $errors->first('name', '<p class="help-block">:message</p>') !!}
</div>
</div>
@Zorx a donné une bonne solution. Mais que se passe-t-il s'il y a plusieurs erreurs et que vous souhaitez les afficher toutes en même temps.
Selon la documentation que vous pourriez utiliser:
Récupération de tous les messages d'erreur pour un champ
foreach ($errors->get('email') as $message) {
//
}
Si vous validez un champ de formulaire de tableau, vous pouvez récupérer tous les messages pour chacun des éléments du tableau à l'aide du caractère *:
foreach ($errors->get('attachments.*') as $message) {
//
}
Récupération de tous les messages d'erreur pour tous les champs
foreach ($errors->all() as $message) {
//
}