我正在开发一个插件来列出某个类型的所有页面。我毫不费力地添加了新类型。我还想显示页面的类别,但是当我调试模板中的对象时,我只看到与页面关联的类别数。
存储库不返回页面的类别,我找不到原因。此外,作为测试,我检查了普通页面是否会返回子页面,但它甚至不计算归因于页面的类别数量。
我查看了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
,以便仍应使用默认配置。
答案 0 :(得分:1)
你在谈论对象时使用的是extbase吗?如果是,则类别属性在模型中的类型错误。而不是字符串,使用
/**
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\Category>
* @lazy
*/
protected $categories;
如果您没有使用extbase,只需对sys_category_record_mm
进行额外查询即可获取相应的数量。