Mysql
 sql >> Base de données >  >> RDS >> Mysql

Symfony2, Doctrine2, MySql, voir les tables

La technique que j'ai utilisée est de créer une entité basée sur la vue :

php app/console doctrine:generate:entity

Vérifiez les paramètres suivants dans les annotations d'entité créées : /** * @ORM\Table(name="table_name") * @ORM\Entity(repositoryClass="AppBundle\Repository\TableNameRepository") */

Créez ensuite une nouvelle table avec une commande 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;

Pour ajouter une doctrine comme clé primaire à votre vue, utilisez cette déclaration :

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

Ou vous pouvez spécifier le nouveau nom de table avec Doctrine et le créer avec un :

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

suivi d'un

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

Utilisez ensuite votre entité dans le contrôleur, aussi simple que cela.