Symfony2 / Doctrine QueryBuilder多个andwhere()失败

时间:2017-08-23 09:59:09

标签: symfony doctrine-orm query-builder

的Bonjour,

我遇到QueryBuilder的简单请求有问题:

$query->where('ec.codeModePrelevement IN (:cbMode)')
        ->setParameter('cbMode', $modes)

        ->andWhere('ec.idStatusPaiement = :status')
        ->setParameter('status', EcheancesStatut::__EN_ATTENTE_PAIEMENT__)


        ->andWhere($query->expr()->eq('ec.idProduit',1))
         ->andWhere('ec.idProduit = :idProduit')
         ->setParameter('idProduit', 1 )
        ;

这使我无法返回结果,好像在数据库中没有用户对应于此:user = 1 codeproduit = 1且modePaiement = VM或VMMANO。 我已经验证了所有可能的拼写错误。并且数据库中对应的用户确实存在。

我试图删除id produit过滤器“工作”我有一些结果:

        $modes = array('VM','VMMANO');
        $query->where('ec.codeModePrelevement IN (:cbMode)')
        ->setParameter('cbMode', $modes)

        ->andWhere('ec.idStatusPaiement = :status')
        ->setParameter('status', EcheancesStatut::__EN_ATTENTE_PAIEMENT__)

         /*->andWhere('ec.idProduit = :idProduit')
         ->setParameter('idProduit', 1 )*/
        ;

这“适用于”(删除modePaiement过滤器):

 $query/*->where('ec.codeModePrelevement IN (:cbMode)')
        ->setParameter('cbMode', $modes)*/

        ->where('ec.idStatusPaiement = :status')
        ->setParameter('status', EcheancesStatut::__EN_ATTENTE_PAIEMENT__)

         ->andWhere('ec.idProduit = :idProduit')
         ->setParameter('idProduit', 1 )
        ;

但这不会给我留下任何结果(删除状态付款过滤器):

$query->where('ec.codeModePrelevement IN (:cbMode)')
        ->setParameter('cbMode', $modes)

        /*->where('ec.idStatusPaiement = :status')
        ->setParameter('status', EcheancesStatut::__EN_ATTENTE_PAIEMENT__)*/

         ->andWhere('ec.idProduit = :idProduit')
         ->setParameter('idProduit', 1 )
        ;

如果你看到我不知道的东西,你能帮助我吗?谢谢。

0 个答案:

没有答案