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;
小因大果....
我想 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;
小因大果....