TYPO3 v11修改页面Slug时触发DBAL异常问题求助
解决TYPO3 v11修改页面Slug时sys_redirect endtime引发的DBAL异常
问题分析
升级到TYPO3 v11后修改页面Slug触发DBAL异常,原因是系统自动生成重定向条目时,sys_redirect表的endtime字段被设置了异常值(210757111918,对应8648年),而该字段的TCA配置中range.upper被限制为2145913200(对应2038年1月1日),导致插入超出范围的值报错。
解决方案
1. 取消endtime的上限限制
通过自定义扩展的TCA覆盖配置,移除endtime字段的上限约束:
在你的自定义扩展目录下创建/修改Configuration/TCA/Overrides/sys_redirect.php,添加以下代码:
// 完全移除range限制 $GLOBALS['TCA']['sys_redirect']['columns']['endtime']['config']['range'] = []; // 或者仅移除上限,保留默认的下限设置 // unset($GLOBALS['TCA']['sys_redirect']['columns']['endtime']['config']['range']['upper']);
修改后清除TYPO3缓存,使配置生效。
2. 修复已存在的异常endtime值
执行SQL语句修正数据库中超出范围的endtime值:
- 若希望将异常值重置为默认的0(永不过期):
UPDATE sys_redirect SET endtime = 0 WHERE endtime > 2145913200;
- 若需要设置一个合理的远未来时间(比如2099年12月31日,时间戳4102444799):
UPDATE sys_redirect SET endtime = 4102444799 WHERE endtime > 2145913200;
注意:执行SQL前务必备份数据库,避免数据丢失。
内容的提问来源于stack exchange,提问作者Stefan Padberg
相关产品推荐
相关产品推荐

