Sentry & Laravel,获取组内的用户。将查找"所有用户与访问权"更改为具有分页



我试图找到所有用户w/一个特定的权限列表在哨兵与laravel。问题是Sentry::findAllUsersWithAccess()返回一个array()

正如他们的github存储库中所述,我确定他们的代码是

public function findAllWithAccess($permissions)
{
    return array_filter($this->findAll(), function($user) use ($permissions)
    {
        return $user->hasAccess($permissions);
    });
}

现在,它获得所有用户,并过滤出具有权限列表的用户。最大的问题是,当我作为一个开发人员会得到一组用户,它会显示所有的用户,我正在开发一个应用程序,可能持有数千名用户,我只需要得到用户与特定的权限列表。

关于这一点,我想使用一个具有->paginate()功能的。

有没有想过如何在不获得所有用户的情况下获得它

为什么不重写findAllWithAccess()方法并编写自己的实现,使用mysql where而不是array_filter()。

我不知道你的项目结构和底层的数据库模式,所以我能给你的是链接到雄辩的文档查询关系(whereHas)。

如果你不知道从哪里开始:它总是一个好主意,看看ServiceProvider (SentryServiceProvider,其中UserProvider,它持有findAllWidthAccess()方法,注册)。覆盖registerUserProvider方法并返回您自己的UserProvider实现(使用编辑过的findAllWithAccess()方法)。

希望这会给你指明正确的方向。

在Laravel中,你可以对数组进行手动分页:

$paginator = Paginator::make($items, $totalItems, $perPage);

查看文档:http://laravel.com/docs/pagination

相关内容

最新更新