1

エンティティに追加のフィールドを追加する Doctrine 2 拡張機能を作成したいと考えています。また、新しいテーブルが必要になります。フィールドとテーブルは、そのエンティティに追加されたカスタム アノテーションに基づいています。loadClassMetadataイベントで何らかの方法で追加する必要があると思います。

これを達成する方法についていくつかの情報を提供できますか?

4

1 に答える 1

2

私はそれを見つけました。

Event Subscriber は、イベントなどの ORM ツール イベントにもサブスクライブできますpostGenerateSchemaTable

public function getSubscribedEvents()
{
    return array(
        Doctrine\ORM\Tools\ToolEvents::postGenerateSchemaTable,
        Doctrine\ORM\Tools\ToolEvents::postGenerateSchema,
    );
}

イベントでは、スキーマオブジェクトを取得し、そこに挿入して変更することができます

$schema = $eventArgs->getSchema();
$schema->createTable( ... )
于 2013-06-04T14:25:59.310 に答える