ORMを使うパターン
use Doctrine\ORM\Query\ResultSetMapping; use Doctrine\ORM\Query\ResultSetMappingBuilder; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\Tools\Setup; //とりあえず、たくさんインポート 中略 $em = $this->getDoctrine()->getEntityManager(); $rsm = new ResultSetMapping(); $rsm->addEntityResult('Acme\HelloBundle\Entity\Post', 'p'); $rsm->addFieldResult('p', 'id', 'id'); //第2引数がDBカラム名、第3引数がエンティティーのフィールド名 $rsm->addFieldResult('p', 'name', 'name'); $query = $em->createNativeQuery('SELECT id, name FROM Post WHERE id = ?', $rsm); $query->setParameter(1, 123); $resulet = $query->getArrayResult();//getArrayResult()は配列で取得 //getResult() もあるがなんだかよくわからない。
ORMを使わないパターン
$stmt = $this->getDoctrine()->getEntityManager()->getConnection()->prepare('select * from mimicry_ranking'); $stmt->execute(); $result = $stmt->fetchAll();//どうやってバインドするかは不明 //まあでもいい感じ結果取得できてます。
参考URL
http://blog.sarabande.jp/post/28000871169
http://sf2.memosdedev.com/creer-une-requete-sql-native-dans-symfony2-avec-doctrine2.html
http://docs.doctrine-project.org/en/latest/reference/native-sql.html#the-nativequery-class
http://taka512.hatenablog.com/entry/20111224/1324738121
http://docs.symfony.gr.jp/symfony2/cookbook/doctrine/dbal.html
http://docs.symfony.gr.jp/symfony2/book/doctrine.html?highlight=dql