繁体   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