我正在Laravel中使用Sentinel进行用户管理。我登录了2个用户,并尝试获取所有已登录用户的列表,但这仅返回最后一个要登录的用户。 下面的代码是我的尝试之一。我知道我做错了,请帮忙。
public function getLoggedInUsers(Request $request,User $user)
{
$loggedinUser ="";
foreach($user as $loggedinUser){
return Sentinel::getUser($loggedinUser);
}
}
它仅返回最后登录的用户,而不返回所有已登录用户的列表
答案 0 :(得分:0)
return 键将在第一次被点击时退出功能getLoggedInUsers()。这意味着您的foreach循环仅执行一次,并立即返回第一个用户。另外,您的$ user变量是单个用户,这意味着没有循环的余地,无论执行什么,它都只会执行一次。 我在文档中找不到Sentinel是否具有获取所有活动用户的功能。
我不确定Sentinel是否支持它,但是如果可以将用户会话保存到数据库而不是文件系统中,那么您应该能够在会话表中查看活动用户。在基本的Laravel身份验证中,您可以更改用户会话的存储位置。 Sentinel可能有类似的东西,或者也可能使用config / session.php。 (https://laravel.com/docs/5.8/session)