現在、複数の言語をサポートするSymfony 3を使用して電子商取引サイトを構築しています。 /翻訳、商品レビュー、割引/スペシャルオファーなどを読み込むためのクエリビルダ。しかし、これは、複数のリポジトリで同じになる結合ブロックを持つつもりであることを意味します。これは、余分に読み込むために結合を追加または変更する必要がある場合は、これらのブロックをすべて捜す必要があるためです。製品データ。複数のアソシエーションを持つdoctrineエンティティのロード方法を修正する方法
私はこのようなDQLクエリを持っている私のCartRepositoryのloadCart()関数の中で例えば:私は、そのページ上の製品のリストを示していたときに
SELECT c,i,p,pd,pt,ps FROM
AppBundle:Cart c
join c.items i
join i.product p
left join p.productDiscount pd
join p.productTranslation pt
left join p.productSpecial ps
where c.id = :id
私はSectionRepositoryで似たようになってしまいますこれに対処する正しい方法は何ですか?参加エンティティ(ここではProduct)が完了するためにロードする必要があるエンティティのリストを集中的に定義できる場所がありますか?私はちょうど遅延読み込みを使用することができたが、それはセクションページのようなページ上で実行されている大量のクエリにつながるだろうと考えています(40個の製品を示すセクションで、上記の例では121個のクエリを実行する必要があります。正しく結合されたクエリ)。