我们目前无法找到与我们期望不符的Extbase解决方案。
在Controller中,我们有以下内容:
$referenz = $this->referenzRepository->findByUid($this->settings['zentrum']);
这将按预期返回对象。现在,还有另外两种语言,其中并非所有内容都已翻译,因此不应出现在已翻译的页面上。第二个数据集不应该在翻译中输出,因为它没有被翻译:
但是,它以默认语言输出。我们已设置了这些全局变量,并且由于不同的原因无法更改它们。
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”对象已翻译,这是正确的。
答案 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));