Laravel 5 - 注册后重定向至URL


Laravel 5 - Redirect To URL After Registration

有多个用户使用完全不同的帖子登录面板。一个给老师,另一个给学生。我制作了中间件来分离他们的视图。中间件检查属性(数据库中的列)命名实体是"学生"还是"公司",并相应地限制或允许视图。是的,访客不允许进入任何一个帖子登录面板。

我正在使用同一张表来保存登录名。(实体列区分它是教师还是学生)。现在我想将用户重定向到不同的视图。如果我改变$redirectTo = "/studentPanel".中间件行为,教师登录无法访问此。但是如果我$redirectTo = "/teacherPanel"硬编码,那么学生帖子登录面板是无法访问的。

如何动态设置$redirectTo。我想到设置身份验证控制器的构造方法。

试过这个:

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中的函数,它们以真或假检查数据库中的实体列值来响应。

我是这样想的,我得到错误"Call to a member function isStudent() on a non-object"

您需要

$request->user()更改为Auth::user()

从那里,我遇到了一个非常类似的问题,我当时找到的最佳解决方案是将$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");
    }
}