TYPO3 11列表视图/对象视图语言选择下拉框缺失问题
TYPO3 v9升级至v11后列表视图语言下拉框消失修复方案
问题
从TYPO3 v9升级到v11后,事件列表视图顶部的多语言切换下拉框消失,仅显示“Standard”或无内容;v9版本中该下拉框可正常切换语言。
修复步骤
1. 修正TCA配置中的表名拼写错误
你的l10n_parent配置里,foreign_table_where存在表名拼写错误:
原配置:
'foreign_table_where' => 'AND {#tx_tevents_domain_model_events}.{#pid}=###CURRENT_PID### AND {#tx_events_domain_model_events}.{#sys_language_uid} IN (-1,0)',
其中tx_tevents_domain_model_events多了一个t,应改为和foreign_table一致的tx_events_domain_model_events:
'foreign_table_where' => 'AND {#tx_events_domain_model_events}.{#pid}=###CURRENT_PID### AND {#tx_events_domain_model_events}.{#sys_language_uid} IN (-1,0)',
2. 补全TCA的ctrl核心配置
TYPO3 v10+要求TCA的ctrl段必须正确配置本地化相关字段,否则列表视图语言筛选器无法加载。确保你的TCA包含以下ctrl配置:
'ctrl' => [ 'title' => 'LLL:EXT:events/Resources/Private/Language/locallang_db.xlf:tx_events_domain_model_events', 'label' => 'title', // 根据你的实际字段调整 'languageField' => 'sys_language_uid', 'transOrigPointerField' => 'l10n_parent', 'transOrigDiffSourceField' => 'l10n_diffsource', 'delete' => 'deleted', 'enablecolumns' => [ 'disabled' => 'hidden', ], // 其他已有配置... ],
languageField、transOrigPointerField这两个字段是语言筛选器正常显示的关键。
3. 启用列表视图的语言筛选
进入事件列表视图后,点击顶部「视图」按钮,确认:
- 勾选「显示语言筛选器」
- 选择需要显示的语言选项
4. 清除全部缓存
修改TCA后必须清除系统全部缓存,否则配置不生效:
- 后端操作:「系统」→「清除缓存」→「全部缓存」
- 命令行操作:
./vendor/bin/typo3 cache:flush
验证
完成以上操作后刷新列表视图,语言切换下拉框即可正常显示所有已配置的语言。
内容的提问来源于stack exchange,提问作者mefailing
相关产品推荐
相关产品推荐

