Symfony2,Doctrine2,MySql,查看表

3

显然是的...请访问https://dev59.com/eGsy5IYBdhLWcg3wsQJj。 - Syjin
不,这只是一个简单的描述。如果我调用doctrine:schema:update,那么这个视图就会被破坏。我需要完整的描述(我指的是视图),就像基本实体一样。 - user1954544
2个回答

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;

要在视图中添加像主键一样的Doctrine,请使用以下语句:

使用以下语句:

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

然后在控制器中使用您的实体,就是这么简单。

应该用bin/console替换app/console。 - Ashikur Rahman

1

如果你想在mappers中定义视图,我认为你无法实现这一点。如果你只是想使用视图来读取数据,那么我认为你可以这样做。只需像普通表格一样在mapper中定义视图字段即可。


是的,看起来这是不可能的,因为对Doctrine更新调用的任何调用都会破坏它。我与其他开发人员交谈后,我们决定Doctrine无法处理视图表。 :( - user1954544

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接