TYPO3 Extbase& Fluid Grouped输出,其属性来自m:n关系

时间:2014-08-30 13:22:01

标签: typo3 fluid extbase

我在Extbase TYPO3-Extension中使用了一些带有m:n关系的域,并希望获得一个按m:n-relation子属性分组的输出,理想情况下包括具有多个关系的条目。

假设我有书籍和类别。书籍有一些“标题”和“memberOfCategories”属性,类别有一些“名称”和“areBooks”属性。一般的m:n事物(使用一些mn-table和TCA中的必要字段等)工作正常。

使用流体,所有类别的书的输出都可以正常工作,以及所有具有特定类别的书籍等等。

但是我需要(在书籍视图/动作上下文中!)一些类似的输出(包括属于多个类别的书籍的“重复”输出):

Category A
  Book A
  Book B

Category B
  Book A
  Book C

(No Category)
  Book D
  Book E

我尝试使用f:groupedFor ViewHelper,但这并不是我想要的。按子属性(category.name)分组不能按预期工作:

<f:groupedFor each="{books}" as="booksOfThisCat" groupBy="memberOfCategories.name" groupKey="memberOfCategories.name">
   <h3>{memberOfCategories.name} (should be category name)</h3>
   <f:for each="{booksOfThisCat}" as="book">
      <li>{book.title}</li>
   </f:for>
</f:groupedFor>

我的第一次尝试只是按memberOfCategories进行分组 - 但这会导致一个不同且无用的结果,因为memberOfCategories仅引用“数字”/关系集,因此分组是垃圾。

如果我在一个类别的动作中工作,那将非常容易,那里只是一个简单的for each category { for each areBooks }事物,但我需要在关于书籍的动作/视图中输出。

我非常确定我只是太愚蠢或盲目 - 并且可能会让一些读者与略微挑剔的英语混淆;-),无论如何,如果有人对此有所暗示会很好。找到一些关于按日期分组的类似问题,用自定义视图助手解决,但我认为可能/应该是一个更简单的解决方案。

1 个答案:

答案 0 :(得分:0)

哦,哦 - 现在我只是在自己背后,它就是这么简单: 将category-Repository添加/注入我的books-controller并将其所需的输出(例如findall)分配给我的action / view,一切都很好,它已经属于类别控制器。