在后端 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 隐藏对象。
我正在使用新闻扩展来管理我网站的新闻消息。某些新闻项目在后端被禁用。用户有一个 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 隐藏对象。