Symfony2原始查询转换为实体

时间:2013-07-18 10:00:37

标签: sql symfony pdo doctrine-orm

我在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。

2 个答案:

答案 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");