エンティティに追加のフィールドを追加する Doctrine 2 拡張機能を作成したいと考えています。また、新しいテーブルが必要になります。フィールドとテーブルは、そのエンティティに追加されたカスタム アノテーションに基づいています。loadClassMetadata
イベントで何らかの方法で追加する必要があると思います。
これを達成する方法についていくつかの情報を提供できますか?
エンティティに追加のフィールドを追加する Doctrine 2 拡張機能を作成したいと考えています。また、新しいテーブルが必要になります。フィールドとテーブルは、そのエンティティに追加されたカスタム アノテーションに基づいています。loadClassMetadata
イベントで何らかの方法で追加する必要があると思います。
これを達成する方法についていくつかの情報を提供できますか?
私はそれを見つけました。
Event Subscriber は、イベントなどの ORM ツール イベントにもサブスクライブできますpostGenerateSchemaTable
。
public function getSubscribedEvents()
{
return array(
Doctrine\ORM\Tools\ToolEvents::postGenerateSchemaTable,
Doctrine\ORM\Tools\ToolEvents::postGenerateSchema,
);
}
イベントでは、スキーマオブジェクトを取得し、そこに挿入して変更することができます
$schema = $eventArgs->getSchema();
$schema->createTable( ... )