Extbase:当使用l10n_parent时,findByUid获取错误的对象

时间:2016-03-31 13:59:55

标签: php localization typo3 extbase

我写的Typo3扩展有问题。我在一个页面上展示了一个具有不同设计和功能的产品。对于我创建m:m关系表的设计和函数。 使用findByUid()捕获产品对象。一切都在默认语言中正常工作。产品信息,设计和功能都在前端正确显示。 但是当我选择本地化的产品对象时,默认语言的设计和功能会显示在前端。 解释起来有点复杂。在后端,我创建产品对象并选择相应的本地化设计和功能。这也很好。 但是在前端,设计和功能从默认语言对象中显示,但已翻译。所有其他信息都是正确的。

仅当我为本地化产品对象选择l10n_parent时才会出现此问题。如果未设置l10n_parent,则前端的所有功能和设计都是正确的。

我也尝试过:

public function initializeObject() {
    /** @var $querySettings \TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings */
    $querySettings = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Typo3QuerySettings');
    $querySettings->setRespectSysLanguage(FALSE);
    $this->setDefaultQuerySettings($querySettings);
}

这并没有改变任何事情。

修改 这可能是一个不固定的错误: https://forge.typo3.org/issues/47192 由于PHP 7的支持,我无法升级到LTS 8,因此不会很好。如果没有l10n_parent,我的产品对象的后端将完全未分类,维护起来非常复杂。

1 个答案:

答案 0 :(得分:0)

基本上你可以用默认语言使用记录的uid,让extbase根据给定的语言做覆盖的东西