我的冒号永远不会转换为参数值
$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)
有人有问题(或解决方案)吗?
答案 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();