我在Symfony2中有一个原始查询
$sql = "SELECT * FROM Content
JOIN ContentLearningAreas ON Content.id = ContentLearningAreas.content_id
JOIN LearningArea ON ContentLearningAreas.learning_area_id = LearningArea.id
WHERE ContentLearningAreas.learning_area_id = {$id} AND Content.active = 1";
$stmt = $this->getEntityManager()->getConnection()->prepare($sql);
$stmt->execute();
return $stmt->fetchAll();
这很好用,但我希望将结果转换为内容实体,以便它们的功能仍然有用。
Jake\NameOfBundle\Entity\Content
如何做到这一点?
修改
看来这是使用PDO而不是Doctrine或Symfony2。
答案 0 :(得分:1)
请阅读学说2中的Native Query。
使用NativeQuery,您可以执行本机SELECT SQL语句和映射 结果到Doctrine实体或支持的任何其他结果格式 由Doctrine撰写。
答案 1 :(得分:1)
这有效;
$stmt = $this->getEntityManager()->getConnection()->prepare($sql);
$stmt->execute();
$items = $stmt->fetchAll(\PDO::FETCH_CLASS, "Jake\NameOfBundle\Entity\Content");