Doctorine检查数据库中是否存在记录

时间:2016-04-22 18:36:28

标签: symfony doctrine-orm doctrine

我想检查数据库中是否存在记录。它唯一需要返回的是真或假。我现在使用以下查询来获取记录。另一个命令是getResult()来检查记录是否存在吗?

return $this->createQueryBuilder('u')
            ->andWhere('u.email = :email AND u.id != :id')
            ->setParameter('email', $email)
            ->setParameter('id', $userId)
            ->getQuery()
            ->getResult();

1 个答案:

答案 0 :(得分:4)

return (boolean)$this->createQueryBuilder('u')
            ->andWhere('u.email = :email AND u.id != :id')
            ->setParameter('email', $email)
            ->setParameter('id', $userId)
            ->getQuery()
            ->getOneOrNullResult();

请注意,如果可能(例如,电子邮件列上没有唯一索引)查询返回多个结果,那么您还需要使用try / catch块包装调用,因为如果更多,它可能会抛出异常找到了一个结果。