我正在编写一个查询以通过 Which framework would you like to load? [Bootstrap]:
[0] None
[1] Bootstrap
[2] Bulma
[3] Foundation
[4] Tachyons
> 1
Are you sure you want to overwrite the following files?
- scripts/autoload/_bootstrap.js
- styles/autoload/_bootstrap.scss
- styles/common/_variables.scss
- styles/components/_comments.scss
- styles/components/_forms.scss
- styles/components/_wp-classes.scss
- styles/layouts/_header.scss
(yes/no) [no]:
> yes
Done.
获取记录。检查createQuery()
后,会有一个SQL
子句,如下所示:
where
这里WHERE ( `sys_category`.`pid` IN ( 47, 0 ) )
是保存我的记录的47
ID,但问题是类别存储在另一个具有不同ID的文件夹中,因此找不到sys_folder
ID在47
表中。如何覆盖/修复此sys_category
子句?
此外,与记录相关联的类别是否必须与记录位于同一文件夹中?如果可以,为什么?
答案 0 :(得分:0)
您可以使用$defaultQuerySettings
更改其搜索的PID。
您可以在instantiateObject()
方法中进行设置,它将用于每个查询,也可以在findBy方法中进行设置。
$querySettings = $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings::class);
// here you can search on all PIDs
$querySettings->setRespectStoragePage(false);
// here you can set special PIDs
$querySettings->setStoragePageIds([12, 15, 38]);
// Set the setting
$this->setDefaultQuerySettings($querySettings);