有多个用户,拥有完全不同的后登录面板。一个教师和其他学生。我让中间件分开他们的观点。中间件检查名为实体的属性(数据库中的列)是“学生”还是“公司”,并相应地限制或允许视图。是的,访客不允许登录后面板。Laravel 5 - 注册后重定向到URL
我使用同一个表来保存登录。 (实体栏目是否区分其教师或学生)。现在我想将用户重定向到不同的视图。如果我改变$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是在应用\用户功能,其与真或假检查在数据库实体列值作出响应。
我想这样,我得到错误"Call to a member function isStudent() on a non-object"
'$请求 - >用户()'是无效的错误说 - 看看在[路由文档(https://开头laravel。 COM /文档/ 5.2 /路由#路线模型结合)。 – ash
感谢让我检查@ash,并且有一件事是我的想法是正确的动态路由?它会工作吗? –
这是不正确的,我有一个想法,我会张贴一个答案看看它,让我知道, –