use Doctrine\ORM\Query\ResultSetMapping;
$sql = "SELECT p.id pid,t.id
FROM Produit p
LEFT JOIN Tarif t ON t.produit_id = p.id
WHERE p.actif = 1 AND t.id = (
SELECT id
FROM Tarif t2
WHERE t2.produit_id = p.id
AND (t2.date_debut is null OR t2.date_debut <= :ddebut)
AND (t2.date_fin is null OR t2.date_fin > :dfin)
AND (t2.is_promo = 1 OR t2.is_promo = :is_promo)
AND t2.prix_vente_unitaire_ht > 0
ORDER BY t2.date_debut desc
LIMIT 1
)
";
$rsm = new ResultSetMapping;
$rsm->addEntityResult('EPS\MonBundle\Entity\Tarif', 't');
$rsm->addFieldResult('t', 'id', 'id');
$qns = $this->_em->createNativeQuery($sql, $rsm);
$qns->setParameter('ddebut', $dateTarif)
->setParameter('dfin', $dateTarif)
->setParameter('is_promo', intval($onlypromo));
qns->getResult();
Pour la fonction addEntityResult() et addJoinedEntityResult() il faut mettre l’objet sous la forme « Societe\ProjetBundle\Entity\Objet » et non pas « SocieteProjetBundle:Objet »


