如果数据库字段可以为NULL(并且没有默认值),并且该字段的TCA l10n_mode为noCopy,则即使您在TypoScript设置中不允许,也会在翻译中显示默认语言内容:
config {
sys_language_overlay = hideNonTranslated
sys_language_mode = strict
}
我认为会发生这种情况,因为在\ TYPO3 \ CMS \ Frontend \ Page \ PageRepository :: getRecordOverlay()(第502行)中,isset($olrow[$fN])
也为NULL返回false(请参阅http://php.net/isset)。如果支票是array_key_exists($fN, $olrow)
而不是设置,那会更好。
发生这种情况的一个很好的例子是EXT:news teaser字段,但我认为这不是唯一的例子。
变通方法很简单:只需在表定义中使用空字符串作为默认值:
CREATE TABLE tx_news_domain_model_news (
teaser text DEFAULT '' NOT NULL,
);
即使这显然是一个错误(没有发现这种行为记录在某处),我认为它永远不会在TYPO3 7.6中修复。
其他人可以批准吗?