Default solution is trivial:
@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
and I can include errors.blade.php
anywhere.
Is there any way to extract each element and display it next to input field that holds the value that failed?
I assume that would require me to define a lot of conditional if
statements next to each input, right?
How to sort this problem? Could you give me any examples?
Thanks.
You can use something like this :
<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 has given a right solution. But what if there are multiple errors and you want to display all of them at once.
According to the documentation you could use:
Retrieving All Error Messages For A Field
foreach ($errors->get('email') as $message) {
//
}
If you are validating an array form field, you may retrieve all of the messages for each of the array elements using the * character:
foreach ($errors->get('attachments.*') as $message) {
//
}
Retrieving All Error Messages For All Fields
foreach ($errors->all() as $message) {
//
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With