Symfony2, Doctrine2, MySql, view tables

前端 未结 2 1108
轮回少年
轮回少年 2021-01-20 12:01

Simple question, is there support for view-tables in doctrine2? I found that it can \'read\' current schema http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest

相关标签:
2条回答
  • 2021-01-20 12:28

    The technique I used is to create an entity based on the view :

    php app/console doctrine:generate:entity
    

    Verify the following parameters in the created entity annotations : /** * @ORM\Table(name="table_name") * @ORM\Entity(repositoryClass="AppBundle\Repository\TableNameRepository") */

    Then create a new table with a sql command :

    CREATE TABLE Table_Name 
    AS 
    SELECT v.field1,v.field2,v.field3,w.field4 
    FROM view1 v,view2 w 
    WHERE v.id=w.id;
    

    To add a doctrine like primary key to your view, use this statement :

    ALTER TABLE Table_Name ADD INT PRIMARY KEY AUTO_INCREMENT NOT NULL;
    ALTER TABLE Table_Name ADD CONSTRAINT pk_id PRIMARY KEY(id)
    

    Or you can specify the new table name with Doctrine and create it with a :

    php app/console doctrine:schema:update --dump-sql
    

    followed by a

    php app/console doctrine:schema:update --force
    

    Then use your entity in the controller, as simple as that.

    0 讨论(0)
  • 2021-01-20 12:29

    if you want to define views in mappers I think you can't do this If you want simply use views to read data from them I think you can do it. Simply define views fields in mapper as for general tables

    0 讨论(0)
提交回复
热议问题