Doctrine createQueryBuilder - 如果参数为空,则获取所有记录

时间:2015-03-16 07:40:13

标签: php doctrine createquery

我的查询生成器:

$nameParameter="david";

$query=$this->entityManager->createQueryBuilder()
            ->from('Person\Entity\User', 'u')
            ->select("u")
            ->where("u.name = :name")
            ->setParameter('name',$nameParameter);

        return  $query->getQuery()->getResult();

$nameParameter为空时,不返回任何结果;

问题:如果$nameParameter为空,如何创建查询获取U.name实体的所有记录;

1 个答案:

答案 0 :(得分:0)

我找到这种方式:

$nameParameter="david";

$query=$this->entityManager->createQueryBuilder()
            ->from('Person\Entity\User', 'u')
            ->select("u");

           if($nameParameter) {

                    $query->andWhere('u.name = :name')
                    ->setParameter('name', $nameParameter);
                }

        return  $query->getQuery()->getResult();