отображение ошибок аутентификации laravel на разных вкладках модема начальной загрузки - PullRequest
1 голос
/ 17 апреля 2019

Я реализовал Laravel Auth в модале начальной загрузки и в моде начальной загрузки есть 2 вкладки, одна для входа в систему и одна для регистрации.

На вкладке регистрации: пользователи, зарегистрированные с помощью уникального имени пользователя и электронной почты, и я хочу показать ошибки на вкладке регистрации, когда электронная почта или имя пользователя уже существует после нажатия кнопки регистрации.это показывает мне эту ошибку, но эта ошибка появляется на вкладке входа в систему, а не на вкладке регистрации.

вот мой код:

<div class="modal-tab-section wd-modal-tabs">
  <ul class="nav nav-tabs wd-modal-tab-menu text-center" role="tablist">
     <li class="nav-item">
        <a class="nav-link active" id="login-tab" data-toggle="tab" href="#login" role="tab" aria-controls="login" aria-expanded="true">Prihlásiť sa</a>
     </li>
     <li class="nav-item">
        <a class="nav-link" id="sign-up-tab" data-toggle="tab" href="#sign-up" role="tab" aria-controls="sign-up">Zaregistrovať sa</a>
     </li>
  </ul>
  <div class="tab-content" id="myTabContent">
     <div class="tab-pane fade show active" id="login" role="tabpanel" aria-labelledby="login-tab">
        <div class="row">
           <div class="col-md-6 p0 brand-description-area">

              <div class="brand-description">
                 <div class="brand-logo">
                    <img src="{{URL::asset('assets/img/DEALSON-LOGO1.png')}}" style="width: 25em;" alt="Logo">
                 </div>

              </div>
           </div>
           <div class="col-md-12 col-lg-6 p0">
              <div class="login-section text-center">
                 <div class="social-media">
                    <a href="{{ url('/auth/facebook') }}" class="facebook-bg"><i class="fa fa-facebook" aria-hidden="true"></i> Prihlásiť sa</a>

                    <a href="{{ url('/auth/google') }}" class="google-bg"><i class="fa fa" aria-hidden="true"></i>Google Prihlásiť sa</a>
                 </div>
                 <div class="login-form text-left">
                    <form method="POST" action="{{ route('login') }}">
                       @csrf
                       <div class="form-group">
                          <label for="email">Email</label>
                          <input type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" id="email" placeholder="Johnmist@gmail.com |">
                          @if ($errors->has('email'))
                          <span class="invalid-feedback" role="alert">
                             <strong>{{ $errors->first('email') }}</strong>
                          </span>
                          @endif
                       </div>
                       <div class="form-group">
                          <label for="password">Heslo</label>
                          <input type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" id="password" name="password" placeholder="*********">
                          @if ($errors->has('password'))
                          <span class="invalid-feedback" role="alert">
                             <strong>{{ $errors->first('password') }}</strong>
                          </span>
                          @endif
                       </div>
                       <button type="submit" class="btn btn-primary wd-login-btn">Prihlásiť sa</button>
                       <a class="btn btn-link" href="{{ route('password.request') }}">
                 {{ __('Zabudol som heslo?') }}
             </a>
                       <div class="form-check">
                          <label class="form-check-label">
                             <input type="checkbox" class="form-check-input">
                             Uložiť heslo
                          </label>
                       </div>
                       <div class="wd-policy">
                          <p>
                             Pokračovaním. Potvrdzujem, že som si prečítal a pochopil<a href="{{'/policy.html'}}"> podmienky používania a zásady ochrany osobných údajov</a> . Nemáte účet? <a href="{{'/register'}}" class="black-color"><strong><u>Prihlásiť sa</u></strong></a>
                          </p>
                       </div>
                    </form>
                 </div>
              </div>
           </div>
        </div>
     </div>
     <div class="tab-pane fade" id="sign-up" role="tabpanel" aria-labelledby="sign-up-tab">
        <div class="row">
           <div class="col-md-6 p0 brand-login-section">

              <div class="brand-description">
                 <div class="brand-logo">
                    <img src="{{URL::asset('assets/img/DEALSON-LOGO1.png')}}" style="width: 25em;" alt="Logo">
                 </div>

              </div>
           </div>
           <div class="col-md-6 p0">
              <div class="sign-up-section text-center">
                 <div class="login-form text-left">
                    <form method="POST" action="/register">
                       @csrf
                       <div class="form-group">
                          <label for="email">Email</label>
                          <input type="email" class="form-control" id="email" placeholder="Email" name="email">
                       </div>
                       <div class="form-group">
                          <label for="username">Užívateľské meno</label>
                          <input type="text" class="form-control" id="username" placeholder="John Smith" name="username">
                       </div>
                       <div class="form-group">
                          <label for="password">Heslo</label>
                          <input type="password" class="form-control" id="password" placeholder="*********" name="password">
                       </div>
                       <div class="form-check">
                          <label class="form-check-label">
                             <input type="checkbox" class="form-check-input" name="subscribe">
                             Odoberať novinky
                          </label>
                       </div>
                       <button type="submit" class="btn btn-primary wd-login-btn">Zaregistrovať sa</button>
                       <div class="wd-policy">
                          <p>

                          </p>
                       </div>
                    </form>
                 </div>
              </div>
           </div>
        </div>
     </div>
  </div>

появляются ошибки, когда laravel проверяет его в контроллере регистра после проверки.

Prihlásiť sa означает ВХОД

Zaregistrovať sa означает Регистрация

here изображениемодальности входа / регистрации

here - это ошибка, которую я хочу получить на другой вкладке, которая является вкладкой регистрации:

1 Ответ

1 голос
/ 17 апреля 2019

Для этого вы можете использовать именованные пакеты ошибок.

из документов :

Если у вас есть несколько форм на одной странице, вы можете назвать MessageBag об ошибках, позволяющий получить сообщения об ошибках для конкретная форма. Передайте имя в качестве второго аргумента withErrors:

return redirect('register')->withErrors($validator, 'login');

Затем вы можете получить доступ к именованному экземпляру MessageBag из $ errors переменная:

{{ $errors->login->first('email') }}

После добавления пакетов ошибок вы можете отобразить правильную вкладку примерно так:

<div id="login"
     class="tab-pane fade @if($errors->register->isEmpty()) show active @endif">
...
</div>

<div id="register"
     class="tab-pane fade @if(! $errors->register->isEmpty()) show active @endif">
...
</div>
...