でクエリを(私はタイトルをより明確にするかどうかはわかりません - それを編集して自由に感じる)の簡素化Symfony2の
私はワインとワイナリーを持つ2つのテーブルを持っています。すべてのワインには1つのワイナリーが割り当てられています。
私は、対応するワイナリーを持つすべてのワインのリストを生成したい場合は、私はこれを行うことができます。
$entities = $em->getRepository('MyBundle:Wine')->findAll();
と
{% for entity in entities %}
{{ entity.winery.name }} {{ entity.name }} <br />
{% endfor %}
この解決策で問題が作られた余分なクエリが存在することです私が避けたいワイナリーごとに
私はで使用されている技術を試しましたが、動作させることができませんでした(単一の結果だけで動作しますか?)。
通常はSQLで、私は単にLEFT JOIN
を実行しますが、Doctrine2でそれを達成する方法を理解できません。
$qb = $this->createQueryBuilder('w', 'wnr');
$qb->leftJoin('w.winery', 'wnr');
$qb->orderBy('w.name', 'ASC');
$qb->getQuery()->getResult();
???
ご協力いただきありがとうございます。
SQL、DQL、独自のメソッド。あなたがリンクしているマニュアルページにリストされています。 – hakre
@hakre:どうすれば後でアクセスできますか?私がそのように結合したままにすると、結合プロパティにアクセスすることができません。 – Czechnology
これは達成しようとするものによって異なります。 ORMを使用しているので、通常はSQLを使用したくありません。ですから、SQLを別にして、DQLで問題を解決できるかどうかを見てください。 DQLはオブジェクトを返します。 – hakre