我正在使用新闻扩展程序管理我网站的新闻消息。某些新闻项目在后端被禁用。用户有一个id为新闻对象的url,它将在我的控制器中触发一个动作
我正试图获取这样的新闻对象
$news = $this->newsRepository->findByUid($id);
这将返回NULL
,因为它在后端被禁用/隐藏。当我将其切换回启用时。它会很好地回归我的对象。
我在newsRepository中使用以下函数尝试了它
public function findHiddenByUid($uid) {
$query = $this->createQuery();
$query->getQuerySettings()->setRespectSysLanguage(FALSE);
$query->getQuerySettings()->setRespectStoragePage(FALSE);
$query->getQuerySettings()->setEnableFieldsToBeIgnored(array('disable'));
return $query
->matching(
$query->equals('uid', $uid)
)
->execute()
->getFirst();
}
但这也会返回NULL
。
功能是否错误,我错过了一些设置吗?我正在使用TYPO3 7.6
答案 0 :(得分:1)
查看我在新闻扩展中使用的findByUid
:
public function findByUid($uid, $respectEnableFields = true)
{
$query = $this->createQuery();
$query->getQuerySettings()->setRespectStoragePage(false);
$query->getQuerySettings()->setRespectSysLanguage(false);
$query->getQuerySettings()->setIgnoreEnableFields(!$respectEnableFields);
return $query->matching(
$query->logicalAnd(
$query->equals('uid', $uid),
$query->equals('deleted', 0)
))->execute()->getFirst();
}
通过调用->findByUid(123,false)
也会返回隐藏的对象。