2017-05-23 9 views
0

私はいくつかのタイプのユーザーを持っています。アカウントタイプのプロファイル依存関係へのリダイレクト方法タイプのプロファイル依存関係でユーザーをリダイレクトする方法は?

私はAuth::user()->typeを確認し、指定されたコントローラのURLにリダイレクトする必要があります。

私はそのためのミドルウェアを使用しようとしました:

class RedirectIfAuthenticated 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @param string|null $guard 
    * @return mixed 
    */ 
    public function handle($request, Closure $next, $guard = null) 
    { 
     if (Auth::guard($guard)->check()) { 

      if(Auth::user()->type == "1"){ 
       return redirect('/center'); 
      } 

      if(Auth::user()->type == "2"){ 
       return redirect('/doctor'); 
      } 
     } 

     return $next($request); 
    } 
} 

しかし、ここで一度、このミドルウェアを呼び出すこと?

+0

ミドルウェアとして書いている理由はありますか?どのファイルに –

答えて

2

あなたはこれを行うことにより、特定のルートのカスタムミドルウェアを定義することができます。

Route::get('admin/profile', function() { 
    // 
})->middleware('custom'); 

をただし、この場合には、あなただけの彼らは、ログイン後にユーザーをリダイレクトする必要があるので、私は最後にロジックを置くことをお勧めしますあなたのログイン方法:

public function login(Request $request) 
{ 
    // handle authentication and return $user object if authenticated 

    if ($user->type == "1") { 
     return redirect('/center'); 
    } else if ($user->type == "2") { 
     return redirect('/doctor'); 
    } 

    // set default redirect if necessary 
} 
+0

?このコードを入れるには? – Blablacar

+0

しかし、このルーティングをリクエストするたびに動作します。したがって、ループリダイレクト – Blablacar

+0

@ Blablacarになります。そのため、ユーザーを認証するコントローラメソッドにコードを追加することをお勧めします。ユーザーがログインしたときにのみ実行されます。 – jackel414

関連する問題