A técnica que usei é criar uma entidade com base na view:
php app/console doctrine:generate:entity
Verifique os seguintes parâmetros nas anotações da entidade criada:
/**
* @ORM\Table(name="table_name")
* @ORM\Entity(repositoryClass="AppBundle\Repository\TableNameRepository")
*/
Em seguida, crie uma nova tabela com um comando 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;
Para adicionar uma doutrina como chave primária à sua visão, use esta declaração:
ALTER TABLE Table_Name ADD INT PRIMARY KEY AUTO_INCREMENT NOT NULL;
ALTER TABLE Table_Name ADD CONSTRAINT pk_id PRIMARY KEY(id)
Ou você pode especificar o novo nome da tabela com o Doctrine e criá-lo com um :
php app/console doctrine:schema:update --dump-sql
seguido por um
php app/console doctrine:schema:update --force
Em seguida, use sua entidade no controlador, simples assim.