我如何在 Doctrine“createQueryBuilder”中选择一些值相等的数组

发布于 2025-01-09 07:15:53 字数 305 浏览 0 评论 0原文

你能帮我解决这个代码吗 数据库中有几列,其中一列是角色,用户角色值如下所示: [“ROLE_ADMIN”] 如何获取具有此角色的所有用户?

public function findUserWithRolle(){
    $qb=$this->createQueryBuilder('R');
    $qb->select('R.username')
    ->where('R.roles=["ROLE_ADMIN"]');
    return $qb->getQuery()->getResult();
}

can you help me with this code
There are several columns in the database, one of which is a role, user role value looks like this:
["ROLE_ADMIN"]
how can I get all users who have this role?

public function findUserWithRolle(){
    $qb=$this->createQueryBuilder('R');
    $qb->select('R.username')
    ->where('R.roles=["ROLE_ADMIN"]');
    return $qb->getQuery()->getResult();
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云柯 2025-01-16 07:15:53

如果使用“直接 LIKE 方法”,您可能会得到如下结果:

 public function findUserWithRolle(string $role = 'ROLE_ADMIN'){
   $qb=$this->createQueryBuilder('R');
   $qb->select('R.username')
      ->andWhere('R.roles LIKE :role')
      ->setParameter('role', '%'.$role.'%');
   return $qb->getQuery()->getResult();
 }

注意:可能存在一些陷阱。采用“LIKE 方法”。但对于你的情况来说就足够了。

If use "direct LIKE-approach" you could get them like:

 public function findUserWithRolle(string $role = 'ROLE_ADMIN'){
   $qb=$this->createQueryBuilder('R');
   $qb->select('R.username')
      ->andWhere('R.roles LIKE :role')
      ->setParameter('role', '%'.$role.'%');
   return $qb->getQuery()->getResult();
 }

Note: There are possible some pitfalls. With "LIKE-approach". But for your case enough.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文