我开始创建 DQL 请求,但我有一个小问题,我不知道为什么。
SELECT count(*)
FROM bw_ach bw
where type_demande = 'MES' and soustype_demande in ('MES avec intervention', 'MES dégradée')
and tenu_delai_standard = 'Oui' and date_statut_cloture BETWEEN :dateFrom AND :dateTo
我在 SQL 中有这个请求,它可以正常工作,我得到一个正常的结果,但我试图在 DQL 上对其进行转换,所以我得到了这个:
return $this->createQueryBuilder('p')
->select('COUNT(p)')
->from(bwACH::class, 'bw')
->andWhere("bw.TYPE_DEMANDE = 'MES'")
->andWhere("bw.SOUSTYPE_DEMANDE in ('MES avec intervention', 'MES dégradée')")
->andWhere("bw.TENU_DELAI_STANDARD = 'Oui'")
->andWhere('bw.DATE_STATUT_CLOTURE BETWEEN :dateFrom AND :dateTo')
->setParameter('dateFrom', $dateFrom)
->setParameter('dateTo', $dateTo)
但我没有相同的结果,使用 DQL 它要大得多。我认为这是我的选择不正确的问题,但是什么?我不知道。
编辑:
我得到了答案,这是一件愚蠢的事情
return $this->createQueryBuilder('p')
->select('COUNT(p)')
->andWhere("p.TYPE_DEMANDE = 'MES'")
->andWhere("p.SOUSTYPE_DEMANDE in ('MES avec intervention', 'MES dégradée')")
->andWhere("p.TENU_DELAI_STANDARD = 'Oui'")
->andWhere('p.DATE_STATUT_CLOTURE BETWEEN :dateFrom AND :dateTo')
->setParameter('dateFrom', $dateFrom)
->setParameter('dateTo', $dateTo)
但我仍然试图搜索为什么我的 from 是无用的。感谢大家 :)