2017-02-03 80 views
0

用戶類型我已經使用make:auth命令創建基本寄存器和登錄。我在註冊頁面創建了一個額外的字段,用於獲取用戶類型*(管理員,員工或訪問者)*。現在頁面路由選擇根據在laravel

我的問題是我需要通過訪問數據庫從用戶表用戶類型導航到他們每個人的三種不同的頁面。任何幫助任何建議都是最受歡迎的。

+1

你到底想做什麼?請澄清。 – GabMic

+0

在我的註冊頁面我收到了電子郵件,密碼和usertype。然後我保存它的用戶table.when我登錄它關係到家庭page.but我的問題是,我需要導航到根據用戶類型數據的三個差異不同的頁面,其存儲在用戶表(例如,如果管理員登陸那麼它必須同樣去一個特定的網頁,替他人) – Nivas

+0

所以你需要的是,例如,當他登錄時,管理員進入管理頁面,和觀衆人次頁面等? – GabMic

回答

1

據我所知,Laravel 5附帶了一個用來做重定向一旦用戶登錄\App\Http\Middleware\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()) { 
     $userType = Auth::user()->type; 

     if ($userType == 'admin') { 
      return redirect('/admin'); 
     } else if ($userType == 'employee') { 
      return redirect('/employee'); 
     } else if ($userType == 'visitor') { 
      return redirect('/visitor'); 
     } 
    } 

    return $next($request); 
} 

Laravel也有留出空白authenticated方法,你可以填寫上\App\Http\Controllers\Auth\LoginController這是從Illuminate\Foundation\Auth\AuthenticatesUsers性狀遺傳

/** 
* The user has been authenticated. 
* 
* @param \Illuminate\Http\Request $request 
* @param mixed $user 
* @return mixed 
*/ 
protected function authenticated(Request $request, $user) 
{ 
     $userType = $user->type; 

     if ($userType == 'admin') { 
      return redirect('/admin'); 
     } else if ($userType == 'employee') { 
      return redirect('/employee'); 
     } else if ($userType == 'visitor') { 
      return redirect('/visitor'); 
     } 
} 
+0

現在提出CSRF令牌不匹配錯誤... – Nivas