De techniek die ik heb gebruikt, is om een entiteit te maken op basis van de weergave:
php app/console doctrine:generate:entity
Controleer de volgende parameters in de gemaakte entiteitannotaties:
/**
* @ORM\Table(name="table_name")
* @ORM\Entity(repositoryClass="AppBundle\Repository\TableNameRepository")
*/
Maak vervolgens een nieuwe tabel met een sql-opdracht:
CREATE TABLE Table_Name
AS
SELECT v.field1,v.field2,v.field3,w.field4
FROM view1 v,view2 w
WHERE v.id=w.id;
Gebruik deze verklaring om een doctrine als een primaire sleutel aan uw visie toe te voegen:
ALTER TABLE Table_Name ADD INT PRIMARY KEY AUTO_INCREMENT NOT NULL;
ALTER TABLE Table_Name ADD CONSTRAINT pk_id PRIMARY KEY(id)
Of u kunt de nieuwe tabelnaam specificeren met Doctrine en deze aanmaken met een :
php app/console doctrine:schema:update --dump-sql
gevolgd door een
php app/console doctrine:schema:update --force
Gebruik dan uw entiteit in de controller, zo simpel is dat.