Teknikken jeg brugte er at skabe en enhed baseret på visningen :
php app/console doctrine:generate:entity
Bekræft følgende parametre i de oprettede enhedsannoteringer:
/**
* @ORM\Table(name="table_name")
* @ORM\Entity(repositoryClass="AppBundle\Repository\TableNameRepository")
*/
Opret derefter en ny tabel med en sql-kommando :
CREATE TABLE Table_Name
AS
SELECT v.field1,v.field2,v.field3,w.field4
FROM view1 v,view2 w
WHERE v.id=w.id;
For at tilføje en doktrin som primær nøgle til dit synspunkt, brug denne erklæring :
ALTER TABLE Table_Name ADD INT PRIMARY KEY AUTO_INCREMENT NOT NULL;
ALTER TABLE Table_Name ADD CONSTRAINT pk_id PRIMARY KEY(id)
Eller du kan angive det nye tabelnavn med Doctrine og oprette det med et :
php app/console doctrine:schema:update --dump-sql
efterfulgt af et
php app/console doctrine:schema:update --force
Brug derefter din enhed i controlleren, så simpelt som det.