Il peut être intéressant voir obligatoire dans certains cas complexes d’avoir recours aux requêtes SQL native directement dans Symfony2, tout en passant par l’ORM et en récupérant des objets à la suite de cette requête.
Voici un exemple d’utilisation dans un Repository Symfony2:
1 | use Doctrine\ORM\Query\ResultSetMapping; |
01 02 03 04 05 06 07 08 09 10 11 | $rsm = new ResultSetMapping(); $rsm ->addEntityResult( 'Novaway\Bundle\CmsBundle\Entity\Project' , 'p' ); $rsm ->addFieldResult( 'p' , 'id' , 'id' ); $rsm ->addFieldResult( 'p' , 'title' , 'title' ); $sql = 'SELECT p.id, p.title FROM project p JOIN project_related pr ON p.id = pr.related_project_id WHERE pr.project_id = ?' ; $query = $this ->_em->createNativeQuery( $sql , $rsm ); $query ->setParameter(1, $idProject ); $projects = $query ->getResult(); |