getRestrictions()->removeByType 不要删除限制

getRestrictions()->removeByType don't remove the restriction

我想 select 数据库中的页面。对于可见页面,一切正常。但是我无法 select 隐藏页面。然后我尝试删除 HiddenRestriction 但这也不起作用。

$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('pages'); 
$queryBuilder->getRestrictions()->removeByType(HiddenRestriction::class);
$result = $queryBuilder->select('uid')->from('pages')->where("slug='".$slug."'")->execute();

我只和

一起工作

$queryBuilder->getRestrictions()->removeAll();

但它也会找到已删除的页面。

试试这个

$queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));

结果

Oops, an error occurred! Class 'MyExt\UF\DeletedRestriction' not found

这两行代码都是直接来自Typo3文档,所以我无法找出问题所在。为什么 RemoveByType 不起作用?

两个问题都找到了问题,原因是一样的。文档示例不完整。为了正常工作,您必须添加相应的辅助工作区。

在 removeByType() 的情况下:

use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction;

如果是 add():

use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;

小因大果....