如何在 TYPO3 中将类别作为嵌套数组获取?

问题描述

我想制作一个生成类别及其子类别列表的自定义元素。

我的问题是类别和子类别作为一个单级数组出现。

如何生成嵌套数组以便使用流体循环遍历它?

10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
10 {
        if.isTrue.field = categories
        table = sys_category
        selectFields = sys_category.*
        pidInList = 55
        recursive = 999
        as = categories
}

解决方法

因为您也可以嵌套数据处理器,所以您只需确保只为第一级选择父级。然后你可以根据父级的 uid 获取他们的孩子在第二级:

10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
10 {
        if.isTrue.field = categories
        table = sys_category
        selectFields = sys_category.*
        pidInList = 55
        recursive = 999
        where = parent = 0
        as = categories
        dataProcessing {
            10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
            10 {
                    table = sys_category
                    selectFields = sys_category.*
                    pidInList = 55
                    recursive = 999
                    where.dataWrap = parent = {field:uid}
                    as = subcategories
            }
        }
}

还是为核心获得特定类别的处理器会很好。 见https://forge.typo3.org/issues/82010