在后端 TYPO3 中设置隐藏时检索控制器中的对象

Retrieving an object in controller when set hidden in backend TYPO3

我正在使用新闻扩展来管理我网站的新闻消息。某些新闻项目在后端被禁用。用户有一个 ID 为新闻对象的 url,它将在我的控制器中触发一个动作

我正在尝试像这样获取我的新闻对象

$news = $this->newsRepository->findByUid($id);

这将 return 变成 NULL,因为它在后端 disabled/hidden。当我将其切换回启用时。它将return我的对象很好。

我在我的 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();

 }

但这也会 return 一个 NULL .

功能有问题吗,我是不是少了什么设置?我正在使用 TYPO3 7.6

查看我在新闻扩展中使用的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) 还将 return 隐藏对象。