簡體   English   中英

Laravel 5 - 注冊后重定向到 URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM