Создание сообщения об ошибке проверки с помощью Laravel - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь сделать сообщение об ошибке проверки при регистрации в Laravel. Но немного запутался в конце стадии формы. Я уже сделал запрос, настроить подключение контроллера и другие вещи. Все это уже закончено. Но в registration.blade, в какой части этой формы я использую это: @if ($errors->first('name')){{ text-danger}} @endif Каждая часть метки? или сформировать часть!?

Это моя форма:

<form class="form-horizontal" role="form" method="post" action="{{url('/auth/register')}}">
                {{csrf_field()}}
                <div class="row">
                    <div class="col-md-3"></div>
                    <div class="col-md-6">
                        <h2>新ユーザ</h2>
                        <hr>
                    </div>
                </div>
                <div class="row">
                    <div class="col-md-3 field-label-responsive">
                        <label for="name">名前</label>
                    </div>
                    <div class="col-md-6">
                        <div class="form-group">
                            <div class="input-group mb-2 mr-sm-2 mb-sm-0">
                                <div class="input-group-addon" style="width: 2.6rem"><i class="fa fa-user"></i></div>
                                <input type="text" name="name" class="form-control" id="name"
                                       placeholder="田中 松本" required autofocus>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="form-control-feedback">
                        <span class="text-danger align-middle">
                            <!-- Put name validation error messages here -->
                        </span>
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="col-md-3 field-label-responsive">
                        <label for="email">E-Mail Address</label>
                    </div>
                    <div class="col-md-6">
                        <div class="form-group">
                            <div class="input-group mb-2 mr-sm-2 mb-sm-0">
                                <div class="input-group-addon" style="width: 2.6rem"><i class="fa fa-at"></i></div>
                                <input type="text" name="email" class="form-control" id="email"
                                       placeholder="you@example.com" required autofocus>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="form-control-feedback">
                        <span class="text-danger align-middle">
                            <!-- Put e-mail validation error messages here -->
                        </span>
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="col-md-3 field-label-responsive">
                        <label for="password">Password</label>
                    </div>
                    <div class="col-md-6">
                        <div class="form-group has-danger">
                            <div class="input-group mb-2 mr-sm-2 mb-sm-0">
                                <div class="input-group-addon" style="width: 2.6rem"><i class="fa fa-key"></i></div>
                                <input type="password" name="password" class="form-control" id="password"
                                       placeholder="Password" required>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="form-control-feedback">
                        <span class="text-danger align-middle">
                            <i class="fa fa-close"> Example Error Message</i>
                        </span>
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="col-md-3 field-label-responsive">
                        <label for="password_confirmation">Confirm Password</label>
                    </div>
                    <div class="col-md-6">
                        <div class="form-group">
                            <div class="input-group mb-2 mr-sm-2 mb-sm-0">
                                <div class="input-group-addon" style="width: 2.6rem">
                                    <i class="fa fa-repeat"></i>
                                </div>
                                <input type="password" name="password_confirmation" class="form-control"
                                       id="password-confirm" placeholder="Password" required>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="col-md-3"></div>
                    <div class="col-md-6">
                        <button type="submit" class="btn btn-success"><i class="fa fa-user-plus"></i> Register</button>
                    </div>
                </div>
            </form>

Uptade

Вот как я это сделал (пример):

 <div class="col-md-3">
    <div class="form-control-feedback @if ($errors->first('name')){{'text-danger'}} @endif ">
          <span class="text-danger align-middle">
            {{$errors->first('')}}
          </span>
     </div>
 </div>

Но это не работает.

и это мои запросы

public function rules()
    {
        return [
            'name' => 'required|min:3|max:20',
            'email' => 'required|email|unique:users,email',
            'password' => 'required|min:6|max:20|confirmed',
            'password_conformation' => 'required|min:6|max:20'
        ];
    }

контроллер

public function register(registerRequest $request)
    {
        return view('auth.register')->withErrors($request);
    }

1 Ответ

0 голосов
/ 13 ноября 2018

Это зависит от того, чего вы хотите достичь:

Вариант 1: если вы хотите отобразить все ошибки в верхней части формы:

@if($errors->has())
   @foreach ($errors->all() as $error)
      <div>{{ $error }}</div>
  @endforeach
@endif

Вариант 2: если вы хотитечтобы показать конкретную ошибку для каждого входа, затем вы помещаете один блок под каждым входом (и заменяете <!-- Put name validation error messages here -->):

@if ($errors->first('name'))
    {{ $errors->formName->first('name') }}
@endif

....

@if ($errors->first('password'))
    {{ $errors->formName->first('password') }}
@endif

....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...