通过Twig从学说的加入查询中访问值



我在访问加入查询的值时遇到问题。我在一个存储库中构建了一个查询,该存储库加入/左加入表。

使以下代码有些可理解:我有预约。此约会是活动组的一部分,活动是活动组的一部分。活动组有参与者。在现实生活中,这意味着活动的每个参与者也是任命的参与者。例如,有一个培训中心。该中心有不同的培训课程(跑步,提起...)。每个课程都有不同小组的不同活动(例如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() }}&emsp;<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") }}&emsp;09:30 Uhr</span>
        </a>
    </li>
{% endfor %}

实体和方法是正确的。其他查询工作正常。但是,有了这个方法,我得到了该方法不正确的符合错误。如果我不使用这些值和循环,则获得HTML元素的4倍。这也是结果的正确数量。内部联接可能有问题吗?因为这样,我不仅将ID的ID链接到DB中的其他实体,还可以多次加入事件吗?我可以以另一种方式访问值吗?

如果实体被正确映射,则可以通过直接访问它们来访问关系和属性:

{% for appointment in appointments|default(false) %}
    <li class="list-group-item">
        <a href="livemode.html">
            <span class="col-md-4">{{ appointment.eventGroup }} <span class="tag tag-default">{{ appointment.name }}</span></span>
             <span class="col-md-4">{{ appointment.topicBlock.name }}</span>
            <span>{{ appointment.date|date("d.m.Y") }} 09:30 Uhr</span>
        </a>
    </li>
{% endfor %}

这假设Appointment实体具有映射EventGroup的关系,并且对此具有Getter方法。

如果它不起作用,则可以为您的实体添加代码,然后编辑我的答案。

相关内容

  • 没有找到相关文章

最新更新