Mysql
 sql >> Database >  >> RDS >> Mysql

Symfony2, Doctrine2, MySql, visualizza tabelle

La tecnica che ho usato è creare un'entità basata sulla vista:

php app/console doctrine:generate:entity

Verifica i seguenti parametri nelle annotazioni dell'entità create: /** * @ORM\Table(name="table_name") * @ORM\Entity(repositoryClass="AppBundle\Repository\TableNameRepository") */

Quindi crea una nuova tabella con un comando 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;

Per aggiungere una dottrina come la chiave primaria alla tua vista, usa questa affermazione:

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

Oppure puoi specificare il nuovo nome della tabella con Doctrine e crearlo con :

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

seguito da un

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

Quindi usa la tua entità nel controller, così semplice.