Symfony2,Doctrine2,MySql,查看表

时间:2013-12-06 09:04:47

标签: mysql symfony doctrine-orm

简单的问题,是否支持doctrine2中的视图表?我发现它可以“读取”当前模式http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/schema-manager.html但是它可以像其他实体\表一样创建新的视图表吗?

它可以解决很多问题。

2 个答案:

答案 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中定义视图字段和普通表

一样