我正在通过symfony2应用程序中的doctrine查询我的mysql数据库。我有一个基本的表格设置,其中包括一个id号码('id'),名称('name'),以及最后一列,如果该人已被联系('联系'),用0或1表示。我可以查询并获取总查询数(在$ inquiryCountTotal控制器中描述就好了。
我正在努力计算已联系的行数。我想我可以在联系列中计算值为1的行,或者我可以只是联系列中的所有行。
出于某种原因,它似乎是在对ids进行求和,因为我有8个ids并且它正在吐出36个。
我哪里错了?提前谢谢!
public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('EABundle:Inquiry')
->findBy(array(), array('id'=>'DESC'));
$inquiryCountTotal = $em->createQuery("
SELECT count(id)
FROM EABundle:Inquiry id
")->getSingleScalarResult();
//This is the part I'm struggling with...
$inquiryCount = $em->createQuery("
SELECT sum(contacted)
FROM EABundle:Inquiry contacted
")->getSingleScalarResult();
return $this->render('EABundle:Inquiry:index.html.twig', array(
'entities' => $entities,
'inquiryCount' => $inquiryCount,
'inquiryCountTotal' => $inquiryCountTotal
));
}
答案 0 :(得分:1)
Doctrine将别名解释为实体的id。
试试这个:
$inquiryCount = $em->createQuery("
SELECT sum(i.contacted)
FROM EABundle:Inquiry i
")->getSingleScalarResult();