Как показать сообщение об ошибке под полем ввода в блейд-файле - Laravel - PullRequest
1 голос
/ 09 ноября 2019

Я проверяю ввод с помощью правил в laravel. В настоящее время я использую приведенный ниже код для отображения ошибок, на мой взгляд, в случае неудачной проверки.

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
        @foreach ($errors->all() as $error)
            <li>{{ $error }}</li>
        @endforeach
        </ul>
    </div>
@endif

Проблема с приведенным выше кодом заключается в том, что все ошибкиприходит в одном месте. Как я могу показать ошибки под их соответствующими входами (как имя, адрес электронной почты, пароль и т. Д.). И где я могу определить свои собственные сообщения об ошибках? Спасибо

Ответы [ 2 ]

0 голосов
/ 09 ноября 2019

Начиная с Laravel 5.8.13, вы можете использовать директиву @error blade. Просто поместите желаемую разметку ошибки ниже поля ввода:

@error('field-name')
    <div class="alert alert-danger">{{ $message }}</div>
@enderror

Если произошла ошибка при проверке field-name, отобразится сообщение, связанное с ошибкой.

Что касается настройки вашегосообщения об ошибках проверки, см. документацию Laravel на Пользовательские сообщения об ошибках для получения дополнительной информации.

0 голосов
/ 09 ноября 2019

Вы можете использовать это для каждого поля

<div class="form-group row">
    <label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label>
        <div class="col-md-6">
            <input id="name" type="text" class="form-control{{ $errors->has('name') ? ' is-invalid' : '' }}" 
            name="name" value="{{ old('name') }}" autofocus>
                @if ($errors->has('name'))
                <span class="invalid feedback"role="alert">
                    <strong>{{ $errors->first('name') }}.</strong>
                </span>
        @endif
    </div>
</div>
...