Php 如何获得“的结果”;不象;通过教义2
我正在尝试获取角色不是Php 如何获得“的结果”;不象;通过教义2,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我正在尝试获取角色不是ROLE\u ADMIN\u USER的结果数。为此,我在条令2中写了以下函数。但这并不是过滤结果。知道它应该是什么样子吗 public function getApprovedUserSearchNumber($searchQuery) { return $this->getEntityManager()->createQueryBuilder('u') ->select('COUNT(u)') ->from
ROLE\u ADMIN\u USER
的结果数。为此,我在条令2中写了以下函数。但这并不是过滤结果。知道它应该是什么样子吗
public function getApprovedUserSearchNumber($searchQuery)
{
return $this->getEntityManager()->createQueryBuilder('u')
->select('COUNT(u)')
->from('AppBundle:User', 'u')
->andwhere('u.username LIKE :query ')
->andwhere('u.roles !LIKE :role ')
->setParameter('query', '%' . $searchQuery . '%')
->setParameter('role','%ROLE_ADMIN_USER%')
->andwhere("u.adminApproved= 'Yes'")
->getQuery()
->getSingleScalarResult();
}
您可以使用
而不是类似的
public function getApprovedUserSearchNumber($searchQuery)
{
return $this->getEntityManager()->createQueryBuilder('u')
->select('COUNT(u)')
->from('AppBundle:User', 'u')
->andwhere('u.username LIKE :query ')
->andwhere('u.roles NOT LIKE :role ')
->setParameter('query', '%' . $searchQuery . '%')
->setParameter('role','%ROLE_ADMIN_USER%')
->andwhere("u.adminApproved= 'Yes'")
->getQuery()
->getSingleScalarResult();
}
您可能不想使用像“%keyword%”这样的
来执行此操作。
。这意味着搜索所有包含“关键字”的内容。因此,查询用户名“%foo%”确实会匹配“foo”,但也会匹配“barfoobar”。此外,搜索“%ROLE\u ADMIN\u USER%”也将匹配“ROLE\u ADMIN\u USER\u LIMITED”,例如。您应该使用相等运算符=
,设置参数时不带任何%
字符。