Sentinel软件包:获取所有登录用户

时间:2019-04-18 16:03:28

标签: laravel cartalyst-sentinel

我正在Laravel中使用Sentinel进行用户管理。我登录了2个用户,并尝试获取所有已登录用户的列表,但这仅返回最后一个要登录的用户。 下面的代码是我的尝试之一。我知道我做错了,请帮忙。

public function getLoggedInUsers(Request $request,User $user) 
{
    $loggedinUser ="";

    foreach($user as $loggedinUser){
        return Sentinel::getUser($loggedinUser);
    }
 }

它仅返回最后登录的用户,而不返回所有已登录用户的列表

1 个答案:

答案 0 :(得分:0)

return 键将在第一次被点击时退出功能getLoggedInUsers()。这意味着您的foreach循环仅执行一次,并立即返回第一个用户。另外,您的$ user变量是单个用户,这意味着没有循环的余地,无论执行什么,它都只会执行一次。 我在文档中找不到Sentinel是否具有获取所有活动用户的功能。

我不确定Sentinel是否支持它,但是如果可以将用户会话保存到数据库而不是文件系统中,那么您应该能够在会话表中查看活动用户。在基本的Laravel身份验证中,您可以更改用户会话的存储位置。 Sentinel可能有类似的东西,或者也可能使用config / session.php。 (https://laravel.com/docs/5.8/sessionUser Sessions