Extbase语言问题,未翻译的对象

时间:2018-06-28 07:46:48

标签: extbase typo3-8.x

我们目前无法找到与我们期望不符的Extbase解决方案。

在Controller中,我们有以下内容:

$referenz = $this->referenzRepository->findByUid($this->settings['zentrum']);

这将按预期返回对象。现在,还有另外两种语言,其中并非所有内容都已翻译,因此不应出现在已翻译的页面上。第二个数据集不应该在翻译中输出,因为它没有被翻译:

enter image description here

但是,它以默认语言输出。我们已设置了这些全局变量,并且由于不同的原因无法更改它们。

config.sys_language_mode = ignore
config.sys_language_overlay = hideNonTranslated

我们尝试了一个自定义函数来返回对象,但是根本没有输出:

public function findReferenzByUid($uid)
{
    $query = $this->createQuery();
    $query->getQuerySettings()->setRespectSysLanguage(false);
    $result = $query->matching(
        $query->logicalAnd(
            $query->equals('uid', intval($uid)),
            $query->equals('sys_language_uid', $GLOBALS['TSFE']->sys_language_uid)
        )
    );
    return $query->execute();
}

我们如何做到这一点?问题是这些是另一个对象中的对象。 “ mother”对象已翻译,这是正确的。

1 个答案:

答案 0 :(得分:0)

我认为您的自定义函数中缺少PID。您可以尝试以下方法:

$querySettings = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Typo3QuerySettings');
$querySettings->setRespectStoragePage(FALSE);

// new Storage IDs
$querySettings->setStoragePageIds(array(1, 26, 989));