TYPO3 v12/v13中TCA type file的fieldname配置适配问题
TYPO3 v12/v13 适配FAL引用字段的fieldname配置问题解决
问题背景
自定义扩展的TCA中,升级到TYPO3 v12/v13前,使用getFileFieldTCAConfig()配置img_rel字段时,传入了驼峰式的imgRel作为第一个参数,导致sys_file_reference.fieldname中存储的是imgRel。升级后改用type: file的原生配置,TYPO3默认会用数据库字段名img_rel去匹配sys_file_reference.fieldname,导致旧的文件引用无法显示。
解决方案
在v12+的file类型字段配置中,添加fieldName配置项,指定为原来的驼峰式值imgRel,即可让TYPO3使用该值匹配旧数据,同时新上传的文件引用也会存储该值。
完整TCA配置示例:
'img_rel' => [ 'label' => '图片', 'config' => [ 'type' => 'file', 'maxitems' => 1, 'allowed' => 'common-image-types', // 指定sys_file_reference中使用的fieldname值,兼容旧数据 'fieldName' => 'imgRel', ] ],
说明
fieldName用于覆盖TYPO3默认的fieldname存储规则(默认使用当前TCA字段的数据库名称,即img_rel)- 该配置无需修改已存储的
sys_file_reference数据,直接让TYPO3适配旧的fieldname值即可 - 新上传的文件引用会自动使用
imgRel作为fieldname存储,保证数据一致性
内容的提问来源于stack exchange,提问作者clive beckett
相关产品推荐
相关产品推荐

