PageモジュールによってロードされるDoctrineエンティティがありますFoo。このページは、GedmoDoctrineExtensionによって提供されるネストされたセットです。モジュールには、ページに関連する1:1Barの別のモデルがあります。ツリーをロードMetadataするときにメタデータを直接結合したいと思います。Foo
したがって、モジュール内Foo:
$em->getRepository('My\Entity\Page')->getRootNodes();
これによりページのコレクションが読み込まれますが、メタデータを直接利用できるようにしたいと思います。ノードの読み込み後にイベントをトリガーするため、すべてのモジュールがこのイベントをサブスクライブして、ページを好きなように使用できます(この場合、ナビゲーション構造にはメタデータが必要ですが、ナビゲーションはモジュールとは関係ありませんFoo。Bar)。
システムはモジュール式に保つ必要があるため、Pageに依存しませんMetadata。どういうわけかBar、イベントをリッスンして、リポジトリ内にクエリを構築することは可能ですか?次に、各ページのメタデータをロードするための追加の結合を追加します。
function getCalledOnEventTrigger($event)
{
$q = $event->getQueryObject();
$q->leftJoin('some join expression');
// Query now joins metadata as well
}