查詢(我不知道如何使標題更加清晰 - 隨意編輯)簡化在Symfony2中
我有葡萄酒和酒廠兩個表。每個酒都有一個酒莊分配給它。
如果我要生產出相應的酒莊所有葡萄酒的名單,我可以這樣做:
$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 2012-01-07 19:31:32
@hakre:但我以後如何訪問它?如果我像這樣左連接,我無法訪問連接的屬性。 – Czechnology 2012-01-07 19:33:49
這取決於你試圖達到的目標。在使用ORM時,通常不想使用SQL。因此,請稍微介紹一下SQL,看看是否可以通過DQL解決您的問題。 DQL將返回對象。 – hakre 2012-01-07 19:35:09