訪問加入查詢中的值時遇到問題。我在連接/離開連接表的Repository中構建了一個查詢。訪問來自使用Twig的Doctrine加入的查詢的值
爲了使下面的代碼有點可以理解:我有一個約會。此約會是事件的一部分,事件是事件組的一部分。一個事件組有參與者。在現實生活中,這意味着每個事件的參與者也是約會的參與者。例如,有一個培訓中心。這個中心有不同的培訓課程(跑步,解除......)。每個課程對於不同的小組都有不同的活動(例如A組總是星期一和星期五,B組總是星期二和星期四)。所以你可以參加組A的運行。約會是每個組的正確日期和時間。
現在我想要一個人的所有約會。所以我的查詢看起來像這樣:
$qb = $this->createQueryBuilder('a')
->leftJoin('a.event', 'event')
->leftJoin('event.eventgroup', 'eventgroup')
->innerJoin('event.participants', 'p', 'WITH', 'p.id = :id')
->setParameter('id', $user->getId())
;
return $qb->getQuery()->getResult();
如果我期待在教義,我也得到正確的結果,運行在MySQL中處理查詢時。但是,如果我想從我的樹枝文件中的表訪問值,它不起作用。
{% for appointment in appointments|default(false) %}
<li class="list-group-item">
<a href="livemode.html">
<span class="col-md-4">{{ appointment.getEventGroup() }} <span class="tag tag-default">{{ appointment.getName() }}</span></span>
<span class="col-md-4">{{ appointment.getTopicBlock().getName() }}</span>
<span>{{ appointment.getDate()|date("d.m.Y") }} 09:30 Uhr</span>
</a>
</li>
{% endfor %}
實體和方法是正確的。其他查詢工作正常。但是用這個,我得到了一個Symfony錯誤,該方法是不正確的。如果我不使用值和循環,我得到4倍的html元素。這也是結果的正確數量。內連接可能有問題嗎?因爲在那裏,我不只是將ID鏈接到數據庫中的其他實體,而是將它們多次加入事件?我可以通過其他方式訪問這些值嗎?
添加其他答案爲時已晚? Isouza的可能工作,但我看到你在做什麼錯... –