gpt4 book ai didi

symfony - FOS bundle - 如何选择具有特定角色的用户?

转载 作者:行者123 更新时间:2023-12-03 05:58:16 24 4
gpt4 key购买 nike

我正在使用 FOS bundle ,并且希望从数据库中检索具有给定角色的所有用户。

最好的方法是什么?

最佳答案

只需将其添加到您的 UserRepository 中或将 $this->_entityName 替换为 YourUserBundle:User:

/**
* @param string $role
*
* @return array
*/
public function findByRole($role)
{
$qb = $this->_em->createQueryBuilder();
$qb->select('u')
->from($this->_entityName, 'u')
->where('u.roles LIKE :roles')
->setParameter('roles', '%"'.$role.'"%');

return $qb->getQuery()->getResult();
}

如果您使用 FOSUser Groups,您应该使用:

/**
* @param string $role
*
* @return array
*/
public function findByRole($role)
{
$qb = $this->_em->createQueryBuilder();
$qb->select('u')
->from($this->_entityName, 'u')
->leftJoin('u.groups', 'g')
->where($qb->expr()->orX(
$qb->expr()->like('u.roles', ':roles'),
$qb->expr()->like('g.roles', ':roles')
))
->setParameter('roles', '%"'.$role.'"%');

return $qb->getQuery()->getResult();
}

关于symfony - FOS bundle - 如何选择具有特定角色的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9016914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com