0

我的 TYPO3 4.5 网站有一个错误:

核心:异常处理程序 (WEB):未捕获的 TYPO3 异常:#1283790586:$TCA 数组中没有表“pages_language_overlay”的条目。这意味着函数 enableFields() 以无效的表名作为参数调用。| 在第 1150 行的文件 /t3lib/class.t3lib_page.php 中引发了 InvalidArgumentException

我不明白会发生什么,但我的后端仍然可用。如何解决?

4

2 回答 2

1

我假设你对 TYPO3 不太了解,所以我试着弄清楚 TYPO3 是如何工作的(关于旧版本)。

TYPO3 具有数据库中表和字段的定义。
第一部分是 MySQL 定义(因为 8 可能是 MySQL 以外的其他数据库)。
第二部分(TCA = T YPO3配置数组)是这些表如何为编辑器构建后端(BE)接口的定义

由于这些信息可以通过扩展来增强,每个扩展都可以将其信息添加到(缓存)池中,并且该池被视为参考。

数据库定义位于文件中ext_tables.sql。TCAext_localconf.php在和中生成的ext_tables.php。今天,TCA 修改应该在(对于新表)或(对于现有表的修改)中完成。Configuration/TCA/tablename.phpConfiguration/TCA/Override/tablename.php

在所有这些文件被包含并为每次调用执行之前,它们被收集并存储为一个生成的 PHP 文件。

您的问题可能会发生,因为收集的文件中存在语法错误,并且直到错误为止,所有信息都已建立,但错误之后的所有内容都丢失了。
尝试清理您的安装并删除这些缓存:在 6 之前的版本中temp_CACHED_<hash>_ext_tables.phptemp_CACHED_<hash>_ext_localconf.php您的typo3conf/文件夹中有文件。将它们全部删除。对 TYPO3(FE 或 BE)的下一次调用将重建两个文件。确保这些没有语法错误。

在安装工具 ( <domain>/typo3/install/) 中,您可以清除所有缓存并将现有数据库与所有活动 (!) 扩展中收集的定义进行比较。如果存在差异,可以“更正”数据库。在更改任何内容之前,请务必备份数据库。

于 2018-02-07T12:51:51.283 回答
0

常用答案:TYPO3 4.5 已过时。将您的安装升级到较新的版本。也许这个错误已经解决了。

如果更新是不可能的,那么问题是你做了什么导致错误被抛出。最近做了哪些改变?不久安装或更新了什么扩展?

于 2018-02-07T09:24:36.047 回答