Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获得“的结果”;不象;通过教义2_Php_Symfony_Doctrine Orm - Fatal编程技术网

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”,例如。您应该使用相等运算符
=
,设置参数时不带任何
%
字符。