TYPO3升级static_info_tables后sr_feuser_register插件报数据表不存在错
解决TYPO3中static_info_tables升级后sr_feuser_register的表不存在错误
我来帮你搞定这个头疼的问题——升级static_info_tables扩展后,前端用户注册页面一直报Table 'db_name.tx_staticinfotables_domain_model_currency' doesn't exist的错误,咱们一步步排查解决:
1. 先把数据库迁移做彻底
升级static_info_tables后,新的表结构大概率没同步到数据库里。你可以这么操作:
- 登录TYPO3后端,进入系统工具 > 数据库分析
- 点击「Compare」按钮,看看有没有未执行的数据库变更(比如创建
tx_staticinfotables_domain_model_currency表) - 勾选所有待执行的变更,点击「Execute」完成数据库更新
2. 确认表映射配置完全生效
你提到已经配置了表映射,但得确保配置位置和语法都没问题:
- 映射配置要放在
ext_localconf.php或者站点的AdditionalConfiguration.php里,完整的Currency模型映射应该是这样的(补全你没写完的部分):
$GLOBALS['TYPO3_CONF_VARS']['EXT']['extbase']['persistence']['classes'][\SJBR\StaticInfoTables\Domain\Model\Currency] = [ 'mapping' => [ 'tableName' => 'static_currencies', 'columns' => [ 'cu_decimal_digits' => ['mapOnProperty' => 'decimalDigits'], 'cu_iso_3' => ['mapOnProperty' => 'isoCode3'], // 其他需要映射的字段按需补充 ] ] ];
- 配置完之后,一定要清空TYPO3所有缓存(包括配置缓存、Extbase缓存,直接点后端的「Flush all caches」最稳妥)
3. 检查扩展版本兼容性
sr_feuser_register可能没适配你升级后的static_info_tables版本:
- 去sr_feuser_register的扩展文档里,确认它支持你当前用的static_info_tables版本
- 如果版本不兼容,要么把static_info_tables降级到兼容版本,要么把sr_feuser_register更到最新稳定版
4. 验证插件的表单字段配置
sr_feuser_register的注册表单如果用到了Currency相关字段,得确认没硬编码旧表名:
- 进入插件配置,检查「表单字段」里的Currency相关项,确保引用的是正确的Extbase属性,不是直接的数据库表字段
- 如果你用了自定义表单模板,也得检查模板里的字段引用是否正确
5. 手动核对数据库表
要是前面的步骤都没用,直接登录数据库看看:
- 确认
static_currencies(旧表)和tx_staticinfotables_domain_model_currency(新表)是否存在 - 如果新表不存在,手动运行static_info_tables扩展目录下的
ext_tables.sql和ext_tables_static+adt.sql脚本创建表
小提示:TYPO3的Extbase缓存经常会“卡”住配置,所以每次改完配置,除了后端清缓存,也可以手动删掉服务器上
typo3temp目录里的缓存文件,确保配置完全生效。
内容的提问来源于stack exchange,提问作者Cristian
相关产品推荐
相关产品推荐

