Tekniken jag använde är att skapa en enhet baserad på vyn :
php app/console doctrine:generate:entity
Verifiera följande parametrar i de skapade entitetsannoteringarna:
/**
* @ORM\Table(name="table_name")
* @ORM\Entity(repositoryClass="AppBundle\Repository\TableNameRepository")
*/
Skapa sedan en ny tabell med ett 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;
För att lägga till en doktrin som primär nyckel till din syn, använd detta uttalande :
ALTER TABLE Table_Name ADD INT PRIMARY KEY AUTO_INCREMENT NOT NULL;
ALTER TABLE Table_Name ADD CONSTRAINT pk_id PRIMARY KEY(id)
Eller så kan du ange det nya tabellnamnet med Doctrine och skapa det med en :
php app/console doctrine:schema:update --dump-sql
följt av en
php app/console doctrine:schema:update --force
Använd sedan din enhet i kontrollern, hur enkelt som helst.