[英]Laravel 5 - Redirect To URL After Registration
有多個用戶具有完全不同的登錄后面板。 一份給老師,一份給學生。 我做了中間件來區分他們的觀點。 中間件檢查屬性(數據庫中的列)命名實體是“學生”還是“公司”,並相應地限制或允許視圖。 是的,訪客不允許進入任何一個登錄后面板。
我正在使用同一個表來保存登錄信息。 (實體列區分是老師還是學生)。 現在我想將用戶重定向到不同的視圖。 如果我改變$redirectTo = "/studentPanel"
。 中間件行為和教師登錄無法訪問此。 但是如果我硬編碼$redirectTo = "/teacherPanel"
,那么學生帖子登錄面板是不可用的。
如何動態設置$redirectTo
。 我想到了在auth控制器的構造方法中進行設置。
試過這個:
public function __construct(Request $request ) {
$this->middleware('guest', ['except' => 'getLogout']);
if(Auth::user() && $request->user()->isStudent() )
$this->redirectTo = "/studentPanel";
elseif(Auth::user() && $request->user()->isTeacher() )
$this->redirectTo = "/teacherPanel";
else
$this->redirectTo = "/auth/login";
}
這里的isStudent()
和 isCompany 是 App\\User 中的函數,它們以 true 或 false 檢查數據庫中的實體列值作為響應。
我是這樣想的,我收到錯誤"Call to a member function isStudent() on a non-object"
您需要將$request->user()
更改$request->user()
Auth::user()
。
從那里,我遇到了一個非常相似的問題,當時我找到的最佳解決方案是將$redirectTo
設置$redirectTo
靜態值,並在路由中找到用戶是學生還是教師並適當重定向。
路線如下所示:
public function getRedirect()
{
if (Auth::user() && Auth->user()->isStudent()) {
return redirect("/studentPanel");
} else if(Auth::user() && Auth->user()->isTeacher()) {
return redirect("/teacherPanel");
} else {
return redirect("/auth/login");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.