2017-10-27 99 views
5

İki farklı tablo ile iki giriş formum var. Varsayılan olarak /login rotası ve diğer yolu /myportal. Ekstra kullanıcı denetleyicisi var. kullanıcı zaten kaydedilir Ama eğer ben şimdi RedirectIfAuthenticatedRedirectIfAuthenticated yönlendirme, diğer oturum açma formunu açmaya çalışırsa

public function handle($request, Closure $next, $guard = null) 
    { 
     if (Auth::guard($guard)->check()) { 
      return redirect('/home'); 
     } 

     else if(Auth::guard('web_student')->check()) 
     { 
      return redirect('student-home'); 
     } 
     return $next($request); 
    } 

ile sorun yaşıyorum, rota /login değil /my-portal yalnızca /student-home yönlendirilir. yani, sadece oluşturduğum bu ek formu değil, düzenli form üzerine tıklarsam. Kullanıcı /my-portal'u tıkladığında student-home'a nasıl yönlendirebilirim?

cevap

4

Sen benim-portal rotaya bir denetleyici bağlayabilirsiniz: Kullanıcı zaten Umarım

public function example() { 
    if(Auth::check()) { 
     //This condition will run if the user is logged in ! 
     return redirect('student-home'); 
    } 
    //Do whatever you want if user is not logged in! 
} 

tarafından kaydedilir Sonra denetleyici işlevi kontrol edebilirsiniz

Route::get('test', '[email protected]') ; 

, Bu soruyu cevaplar!

2

sizin koduyla bu

public function handle($request, Closure $next, $guard = null) 
    { 
     if (Auth::guard($guard)->check()) { 

      if(guard == 'web_student') { 
       return redirect('student-home'); 
      }else return redirect('/home'); 
     } 
    return $next($request); 
} 

sorun gibi RedirectIfAuthenticated ortakatmanını değiştirin aşağıdaki segmenti bir kullanıcı her zaman doğrudur kaydedilir olacak eğer o. Belirli bir guard olup olmadığını denetlemek zorunda Buna göre yönlendirmek istiyorsanız, bu if ifadesinin içinde ayarlayın.

if (Auth::guard($guard)->check()) { return redirect('/home'); }