我如何 select Doctrine "createQueryBuilder" 中的一些值等于数组
how i select some value equal array in Doctrine "createQueryBuilder"
你能帮我看看这段代码吗
数据库中有几列,其中一列是角色,用户角色值如下所示:
["ROLE_ADMIN"]
我怎样才能得到所有拥有这个角色的用户?
public function findUserWithRolle(){
$qb=$this->createQueryBuilder('R');
$qb->select('R.username')
->where('R.roles=["ROLE_ADMIN"]');
return $qb->getQuery()->getResult();
}
如果使用 "direct LIKE-approach",您可以获得它们:
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-approach”。但是对于你的情况来说已经足够了。
你能帮我看看这段代码吗 数据库中有几列,其中一列是角色,用户角色值如下所示: ["ROLE_ADMIN"] 我怎样才能得到所有拥有这个角色的用户?
public function findUserWithRolle(){
$qb=$this->createQueryBuilder('R');
$qb->select('R.username')
->where('R.roles=["ROLE_ADMIN"]');
return $qb->getQuery()->getResult();
}
如果使用 "direct LIKE-approach",您可以获得它们:
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-approach”。但是对于你的情况来说已经足够了。