私が使用した手法は、ビューに基づいてエンティティを作成することです:
php app/console doctrine:generate:entity
作成されたエンティティアノテーションの次のパラメータを確認します:
/**
* @ORM\Table(name="table_name")
* @ORM\Entity(repositoryClass="AppBundle\Repository\TableNameRepository")
*/
次に、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;
主キーのような教義をビューに追加するには、次のステートメントを使用します:
ALTER TABLE Table_Name ADD INT PRIMARY KEY AUTO_INCREMENT NOT NULL;
ALTER TABLE Table_Name ADD CONSTRAINT pk_id PRIMARY KEY(id)
または、Doctrineで新しいテーブル名を指定し、:
で作成することもできます。php app/console doctrine:schema:update --dump-sql
が続きます
php app/console doctrine:schema:update --force
次に、それと同じくらい簡単に、コントローラーでエンティティを使用します。