页面对象不与类别一起返回

时间:2016-08-10 19:03:36

标签: typo3

我正在开发一个插件来列出某个类型的所有页面。我毫不费力地添加了新类型。我还想显示页面的类别,但是当我调试模板中的对象时,我只看到与页面关联的类别数。

存储库不返回页面的类别,我找不到原因。此外,作为测试,我检查了普通页面是否会返回子页面,但它甚至不计算归因于页面的类别数量。

我查看了sys_category_record_mm表,并正确创建了行。我没有触及TCA中的类别。

这是sys_category TCA

中的配置
items
    config
        allowed = *
        internal_type = db
        MM = sys_category_record_mm
        MM_oppositeUsage
        pages
            0 = categories
        sys_file_metadata
        tt_content
        tx_news_domain_model_news
            0 = categories
        show_thumbs =
        size = 10
        type = group
    exclude = 0
    label = LLL:EXT:lang/locallang_tca.xlf:sys_category.items

这是我在TCA

中的页面类别配置
categories
    config
        autoSizeMax = 50
        foreign_table = sys_category
        foreign_table_where = AND sys_category.sys_language_uid IN (-1, 0) ORDER BY sys_category.sorting ASC
        maxitems = 9999
        MM = sys_category_record_mm
        MM_match_fields
            fieldname = categories
            tablenames = pages
        MM_opposite_field = items
        renderType = selectTree
        size = 10
        treeConfig
            appearance
                expandAll = 1
                maxLevels = 99
                showHeader = 1
            parentField = parent
        type = select
    exclude = 1
    label = LLL:EXT:lang/locallang_tca.xlf:sys_category.categories

我没有在页面中添加更多类别选择器。手动或通过makeCategorizable,以便仍应使用默认配置。

1 个答案:

答案 0 :(得分:1)

你在谈论对象时使用的是extbase吗?如果是,则类别属性在模型中的类型错误。而不是字符串,使用

/**
 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\Category>
 * @lazy
 */
protected $categories;

如果您没有使用extbase,只需对sys_category_record_mm进行额外查询即可获取相应的数量。