2017-08-30 8 views
1

電子メールを確認していないユーザーをページにリダイレクトしたい。ユーザーがLaravelで電子メールを確認していない場合のページへのリダイレクト

私は簡単ミドルウェア上でこれを行うことによって、それを達成することができます

if(Auth::user()->confirmed == 0) 
    { 
     return redirect("somewhereelse"); 
    } 

私は15のミドルウェアを持っていると私は、このコードでそれらを乱雑にしたくないが。

ユーザーが各ミドルウェアに追加することなくログインする必要があるページ全体にこのようなルールを適用する方法はありますか?それがある場合は、次のことができ、ユーザーがログインしている場合は、確認することができ

if(Auth::guard($guard)->check()) { 
    if(Auth::user()->confirmed == 0){ 
     return redirect("somewhereelse"); 
    } 
    return redirect('authenticatedarea'); 
} 

編集持っていれば、あなたの、「RedirectIfAuthenticated」と:

+2

これに対して別のミドルウェアを作成して初めて実行することはできますか? –

+0

@SamCollinsこれは興味深い可能性がありますが、web.phpにはまだ別のレイヤーが追加されていますが、それは唯一の方法だと思います... – prgrm

答えて

1

私はあなたに2つの方法を提案することができます同じミドルウェアで電子メールを確認したかどうかを確認してください。

そうでなければ、このチェックだけで別のミドルウェアを作成することができます。

1つのミドルウェアで2つの簡単なチェックをラップすることができますので、最初にお勧めします。必要に応じて後で分割することもできます。

関連する問題