我有一个Laravel Web应用程序,包含两种类型的用户:
顾客
管理
根据用户类型,他们可以查看和执行不同的操作.
顾客
以客户身份登录时,我的客户将看到不同的仪表板.
管理员
以admin身份登录时,我可以看到表中的用户列表
例,
用户A
用户B
用户C
更多 …
目标: 我希望看到客户在点击列表中的某个用户时看到的内容.
我无法为此提出解决方案.
IMO
会Auth::user()->type
适用于这种情况吗?
目标是Auth:user()->type == ‘customer’
在实际时将页面呈现为Auth::user()->type == ‘admin’
.我不完全确定我想做的事情是否可行.
我怎么在Laravel做那样的事情?
您可以尝试我在我的一个项目中所做的事情 - 实现非常简单,也许您也可以使用它.
我们的AuthController中还有其他操作,允许用户切换到其他用户并记住会话中的当前用户ID:
public function switchUser($userId) { // disallow switched users from switching again if (Session::get('previous_user')) App::abort(403); $user = User::findOrFail($userId); Session::set('previous_user', Auth::id()); Auth::login($user); return redirect('some path'); }
第二部分是自定义注销功能,对于切换用户,它们将其切换回原始用户帐户而不是注销:
public function getLogout() { if ($previousUser = Session::get('previous_user')) { Session::remove('previous_user'); Auth::loginUsingId($previousUser); return redirect('some path'); } Auth::logout(); return redirect('some path'); }
有了这个逻辑,你就可以切换到其他用户并返回.您可能需要添加权限检查,以便只有管理员可以这样做,将列表中的客户链接到交换机URL,无论如何,功能的核心在上面的代码中.