2017-09-28 23 views
1

私はPHPコードで「1ページに2つのフォーム」問題に取り組もうとしていますが、予想以上に使い勝手が良くなり、正しい方法で動作しません。Laravelの同じページに2つのフォームがありますか?

最初のフォーム(ログイン)の場合、このif文を使用して、ログインのメッセージがあるかどうかを判断します。

@if(Session::has('message') && Session::get('last_message_for') == 'login') 
<div class="notification is-{{ Session::get('color') }}"> 
    <i class="fa fa-times"></i> &nbsp;&nbsp;{{ Session::get('message') }} 
</div> 
@elseif($errors->first() && Session::get('last_message_for') == 'login') 
<div class="notification is-warning"> 
    <i class="fa fa-times"></i> &nbsp;&nbsp;{{ $errors->first() }} 
</div> 
@endif 

私は私の第二の形式のために同じコードを持っているが、それは単に「ログイン」と異なる値をlast_message_forをチェックします。今ダウン問題へ

@if(Session::has('message') && Session::get('last_message_for') == 'modal') 
<div class="modal is-active" id="modal-forgotPassword"> 
@else 
<div class="modal" id="modal-forgotPassword"> 
@endif 
    <div class="modal-background"></div> 
    <div class="modal-card"> 
     <header class="modal-card-head"> 
      <p class="modal-card-title" id="open-modal">Forgot Password?</p> <button class="delete"></button> 
     </header> 
     <form action="{{ route('frontend.guest.password.forgot') }}" method="post"> 
      <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
      <section class="modal-card-body"> 
       <div class="content"> 
        @if(Session::has('message') && Session::get('last_message_for') == 'modal') 
        <div class="notification is-{{ Session::get('color') }}"> 
         <i class="fa fa-times"></i> &nbsp;&nbsp;{{ Session::get('message') }} 
        </div> 
        @endif 
        <div class="field"> 
         <p class="control has-icons-left"> 
          <input class="input" name="email" placeholder="Enter an email..." type="email"> 
          <span class="icon is-small is-left"><i class="fa fa-envelope"></i></span> 
         </p> 
        </div> 
        <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
       </div> 
      </section> 
      <footer class="modal-card-foot"> 
       <button class="button is-success" type="submit"><i class="fa fa-sign-in"></i> &nbsp;&nbsp;Send email</button> 
      </footer> 
     </form> 
    </div> 
</div> 

、ログイン部分は完全に正常に動作し、そのためのいずれかが存在するときのエラーメッセージを示しているが、私はいくつかを持っているときに、第2の1は、すべてのエラーを表示されません。

私はここでlast_message_for

Session::put('last_message_for', 'login'); 

を設定するためにこれを使用していますが、私の第二の形式のコードです:

public function onForgotPassword(Request $request) { 
    $validator = Validator::make($request->all(), [ 
     'email' => 'required|email|exists:users,mail', 
    ]); 

    Session::put('last_message_for', 'modal'); 

    if ($validator->fails()) { 
     return redirect()->route('frontend.guest.login')->withErrors($validator->messages());; 
    } 
    else { 
     Mail::to($request->input('email'))->send(new ForgotPasswordEmail()); 
     return redirect()->route('frontend.guest.login')->withMessage('Email Sent')->withColor('warning'); 
    } 
} 
+0

あなたは '$エラー - >最初の()' seesionがある場合は 'このため –

答えて

0

あなたは検証エラーを処理していない、唯一のメッセージが、この、返さそれを行う必要があります。

@if(Session::has('message') && Session::get('last_message_for') == 'modal') 
<div class="notification is-{{ Session::get('color') }}"> 
    <i class="fa fa-times"></i> &nbsp;&nbsp;{{ Session::get('message') }} 
</div> 
@elseif($errors->first() && Session::get('last_message_for') == 'login') 
<div class="notification is-warning"> 
    <i class="fa fa-times"></i> &nbsp;&nbsp;{{ $errors->first() }} 
</div> 
@endif 
+0

のthnxをmessage'でためにあなただけのコードを持って、私は本当に気づいたことがない。このような第二の形式のエラーを表示する場所を私は見ませんでした。 –

関連する問題