如何从学说和createQueryBuilder从视图中获取数据?

时间:2018-09-23 19:51:01

标签: symfony doctrine-orm

我需要对数据库中的视图执行sql查询以获取数据,我使用以下代码:

$qb= $this->getEntityManager()->createQueryBuilder();
        return $qb->select('count(c)')
                ->from('AppsBundle:Apps_View', 'c')
                ->getQuery()->getSingleScalarResult();

此查询失败,首先我没有Apps_Views的实体,其次该实体是通过控制台生成的。

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

您必须创建一个反映您的观点的实体。您只需要将视图视为常规表,并将其查询为常规表即可:

/**
 * @ORM\Entity
 * @ORM\Table(name="your_view")
 */
class YourView {
    // ...
}

请注意,如果您运行命令doctrine:schema:update --force ORM会尝试从该视图实体创建新表。无论如何,您都应该使用“教义迁移”工具。