Kỹ thuật tôi đã sử dụng là tạo một thực thể dựa trên chế độ xem:
php app/console doctrine:generate:entity
Xác minh các tham số sau trong chú thích thực thể đã tạo:
/**
* @ORM\Table(name="table_name")
* @ORM\Entity(repositoryClass="AppBundle\Repository\TableNameRepository")
*/
Sau đó, tạo một bảng mới bằng lệnh 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;
Để thêm một học thuyết như khóa chính vào chế độ xem của bạn, hãy sử dụng câu lệnh sau:
ALTER TABLE Table_Name ADD INT PRIMARY KEY AUTO_INCREMENT NOT NULL;
ALTER TABLE Table_Name ADD CONSTRAINT pk_id PRIMARY KEY(id)
Hoặc bạn có thể chỉ định tên bảng mới bằng Doctrine và tạo nó bằng:
php app/console doctrine:schema:update --dump-sql
theo sau là một
php app/console doctrine:schema:update --force
Sau đó, sử dụng thực thể của bạn trong bộ điều khiển, đơn giản như vậy.