Zastosowana przeze mnie technika polegała na stworzeniu encji na podstawie widoku :
php app/console doctrine:generate:entity
Sprawdź następujące parametry w adnotacjach utworzonych encji :
/**
* @ORM\Table(name="table_name")
* @ORM\Entity(repositoryClass="AppBundle\Repository\TableNameRepository")
*/
Następnie utwórz nową tabelę za pomocą polecenia 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;
Aby dodać doktrynę, taką jak klucz podstawowy do swojego poglądu, użyj następującego stwierdzenia:
ALTER TABLE Table_Name ADD INT PRIMARY KEY AUTO_INCREMENT NOT NULL;
ALTER TABLE Table_Name ADD CONSTRAINT pk_id PRIMARY KEY(id)
Lub możesz określić nową nazwę tabeli za pomocą Doctrine i utworzyć ją za pomocą :
php app/console doctrine:schema:update --dump-sql
po którym następuje
php app/console doctrine:schema:update --force
Następnie użyj swojej jednostki w kontrolerze, tak proste, jak to.