教义不会改变我的冒号

时间:2016-11-26 22:36:01

标签: symfony doctrine dbal

我的冒号永远不会转换为参数值

    $queryBuilder
        ->select('p.id', 'p.quantite', 'p.dateAjoutPanier', 'p.prix, p.user_id', 'v.nom', 'p.produit_id')
        ->from('paniers', 'p')
        ->innerJoin('p', 'produits', 'v', 'p.produit_id=v.id')
        ->where('p.user_id = :userid')
        ->andWhere('p.produit_id = :produitid')
        ->setParameter('produitid',(int)1)
        ->setParameter('userid',(int)1);
    return $queryBuilder->getSQL();

此代码返回: SELECT p.id,p.quantite,p.dateAjoutPanier,p.prix,p.user_id,v.nom,p.produit_id FROM paniers p INNER JOIN produits v ON p.produit_id = v.id WHERE(p.user_id =: userid)AND(p.produit_id =:produitid)

有人有问题(或解决方案)吗?

1 个答案:

答案 0 :(得分:0)

如果选择了多个行,则应使用循环遍历每个键-值实体。

但是,如果只有一行,请对getSingleResult()使用getOneOrNullResult()setMaxResults(1)方法

例如:

$queryBuilder
    ->select('p.id', 'p.quantite', 'p.dateAjoutPanier', 'p.prix, p.user_id', 'v.nom', 'p.produit_id')
    ->from('paniers', 'p')
    ->innerJoin('p', 'produits', 'v', 'p.produit_id=v.id')
    ->where('p.user_id = :userid')
    ->andWhere('p.produit_id = :produitid')
    ->setParameter('produitid',1)
    ->setParameter('userid',1)
    ->setMaxResults(1)
    ->getQuery()
    ->getOneOrNullResult();