0

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

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

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

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

4

1 回答 1

0

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

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

于 2019-04-18T16:27:05.220 回答