简单的问题,是否支持doctrine2中的视图表?我发现它可以“读取”当前模式http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/schema-manager.html但是它可以像其他实体\表一样创建新的视图表吗?
它可以解决很多问题。
答案 0 :(得分:2)
我使用的技术是基于视图创建实体:
php app/console doctrine:generate:entity
在创建的实体注释中验证以下参数:
/**
* @ORM\Table(name="table_name")
* @ORM\Entity(repositoryClass="AppBundle\Repository\TableNameRepository")
*/
然后使用sql命令创建一个新表:
CREATE TABLE Table_Name
AS
SELECT v.field1,v.field2,v.field3,w.field4
FROM view1 v,view2 w
WHERE v.id=w.id;
要在视图中添加类似主键的原则,请使用以下语句:
ALTER TABLE Table_Name ADD INT PRIMARY KEY AUTO_INCREMENT NOT NULL;
ALTER TABLE Table_Name ADD CONSTRAINT pk_id PRIMARY KEY(id)
或者您可以使用Doctrine指定新表名,并使用:
创建它php app/console doctrine:schema:update --dump-sql
后跟
php app/console doctrine:schema:update --force
然后在控制器中使用您的实体,就像那样简单。
答案 1 :(得分:1)
如果你想在映射器中定义视图我认为你不能这样做 如果您只想使用视图从中读取数据,我认为您可以这样做。只需在mapper中定义视图字段和普通表
一样