繁体   English   中英

在大多数情况下,如何计算查询中的行数,它们应该是0 - Doctrine2

How to count the number of rows in a query when in most cases, they are expected to be 0 - Doctrine2

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个电子邮件的注册表格,应该是唯一的。 我想要做的是,如果有人填写了一封已经注册给其他用户的电子邮件,这个人可以看到我写的邮件,而不是像

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'admin@domain.com' for key 'UNIQ_1483A5E9E7927C74'

我在存储库类中尝试了这个:

public function getSameFriends ($email)
    {
        $q = $this->createQueryBuilder('f');

        $q->select('f')
          ->where('f.email = :email')      
          ->setParameter('email', $email);

        return $q->getQuery()->getSingleScalarResult();
    }

然后在控制器中:

$em = $this->getDoctrine()->getEntityManager();
        $count = $em->getRepository('EMMyFriendsBundle:Friend')
                                    ->getSameFriends($friend->getEmail());
        if($count != 0)
        {
            $this->get('session')->setFlash('notice', 'There already is a friend with this email!');
            return $this->redirect($this->generateUrl('home_display'));
        }

但我得到一个例外

No result was found for query although at least one row was expected.
500 Internal Server Error - NoResultException

我不需要查询的结果,只是知道结果是1还是0.你知道怎么做这个吗?

1 个回复

你可以做:

return count($q->getQuery()->getResult());

顺便说一句,你看过'uniqueEntity'验证约束吗? 它提供了您需要的功能:

http://symfony.com/doc/current/reference/constraints/UniqueEntity.html

1 如何使用Doctrine2有效地计算模型中的相关行

我对Doctrine很新,并且想知道如何有效地计算特定模型对象的相关对象的数量。 我在这里读到,在模型中使用实体管理器并不是一个好主意,所以我想知道如何在不延迟加载所有相关模型并执行count()的情况下查询数据库。 我还没有真正找到一个好的答案,但似乎这是一个非常基本的东西? ...

3 如何计算预期的行数

当我有这样的mysql查询时: 我如何知道没有LIMIT 0, 30结果数。 伪查询: 这给了我这样的清单: 3 1个 1个 1个 等等 但我期望这样的事情: 137 我当前的解决方案 我认为这是一种不良的编 ...

2014-03-10 15:36:36 1 35   php/ mysql
5 Doctrine2本机查询:行被移位

我想使用Doctrine结果映射,但是得到一个非常奇怪的结果。 这是我在存储库“结果”中的代码: 必须有20个结果,如果我count($results) ,结果是20。 但是如果我var_dump($ result [19])我得到这个转储: 看,private $k ...

10 教义2一对多

我有两个实体:User和Comment。 在用户中有: 在我的自定义类中,我有查询: 该查询返回所有用户,但我希望返回count(Comments)> 0的用户。 我不能使用Join因为我使用了iterate() 。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM