Symfony 3.3.9 - 显示关系的问题

时间:2017-11-14 15:05:06

标签: php symfony orm doctrine

我在显示实体之间的关系方面遇到了麻烦。 我有以下实体: 类别 研讨会 主题

研讨会和类别之间有一个ManyToOne(每个研讨会属于确切的一个类别)和研讨会和主题之间的ManyToMany(每个研讨会可以有几个主题)。这种关系正在起作用,因为研讨会的修改就像一个魅力。

现在我想根据主题和类别显示一个列表:

主题 - >类别     - >研讨会

您可以想象,迭代主题以获取所有研讨会是没有问题的,但我想迭代主题以显示具有此特定主题的研讨会的所有使用类别的列表。 我不知道如何创建所需的查询(或任何需要的)。我很清楚它在纯SQL中会是什么样子,但与教条无关。

非常感谢任何帮助

提前致谢

塞巴斯蒂安

更新: 输出应该是DIV的堆叠列表或类似的导航(为了更容易用列表显示):

<ul>
  <li class="topic">Topic1
    <ul class="category">Category3(because 1 and 2 do not contain seminars with this topic)
      <li>Seminar 17</li>
      <li>Seminar 31</li>
    </ul>
  </li>
  <li class="topic">Topic3 (because there are no seminars with Topic2)
    <ul class="category">Category3
      <li>Seminar 8</li>
      <li>Seminar 24</li>
    </ul>
  </li>
</ul>

在SQL中我会做类似的事情(我没有在主题和研讨会之间展示ManyToMany以便于编写和理解):

select t.*, c.*, s.* 
    from Topics t 
        inner join seminars s on t.id=s.topicId
        inner join categories c on c.id=s.categoryId
    order by t.id, c.id, s.id

当然,我必须在渲染过程中处理相同的主题和类别。

0 个答案:

没有答案