TYPO3 findAll returns 空
TYPO3 findAll returns empty
我的控制器里有这个:
/**
* shopUsrMasterdataRepository
*
* @var
\TYPO3\BackendcustomerExtension\Domain\Repository\ShopUsrMasterdataRepository
* @inject
*/
protected $shopUsrMasterdataRepository;
$user = $this->shopUsrMasterdataRepository->findAll();
它Returns 为空或空...但是在数据库中大约有 600 个条目。
可能是什么问题?
使用 TYPO3 6.2.31
谢谢
通过 TypoScript 设置 pid(记录所在的位置)
plugin.tx_myext {
persistence {
storagePid = xxx
}
}
或在您的控制器中禁用对 pid 的要求,例如:
/** @var \TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings $querySettings */
$querySettings = $this->objectManager->get('TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings');
$querySettings->setRespectStoragePage(false);
$this->myRepository->setDefaultQuerySettings($querySettings);
在几乎所有情况下,这是由于在 Extbase 的持久性配置中设置了不正确的 storagePageUid
,在适用于您正在构建的扩展或后端模块的范围内。
其他可能的原因可能是使用了记录类型(请参阅 Extbase 附带的 FrontendUser 域模型)。如果您的域模型扩展或使用 fe_user
那么这些注意事项也适用于您的情况。此外,如果您在适用于您的 table 的 TCA 上声明了 enableFields
,这些将得到尊重。如果您的 table 支持语言,那么 sys_language_uid
也会生效。最后:如果您声明了 hidden
或 delete
字段,这些字段也将受到尊重。
如果您的用例要求您的 TCA 包含这样的 enableFields
但您构建的 plugin/module 不能遵守它们,您的选择是覆盖 Repository 上的 createQuery()
以操作 QuerySettings并强制 respectEnableFields
或其他人为 FALSE。
编辑:找到解决方案,缺少类型映射 TS:
config.tx_extbase.persistence.classes {
Vendor\ExtKey\Domain\Model\Record.mapping {
recordType = Tx_ExtKey_Domain_Model_Record`
}
}
我的控制器里有这个:
/**
* shopUsrMasterdataRepository
*
* @var
\TYPO3\BackendcustomerExtension\Domain\Repository\ShopUsrMasterdataRepository
* @inject
*/
protected $shopUsrMasterdataRepository;
$user = $this->shopUsrMasterdataRepository->findAll();
它Returns 为空或空...但是在数据库中大约有 600 个条目。
可能是什么问题?
使用 TYPO3 6.2.31
谢谢
通过 TypoScript 设置 pid(记录所在的位置)
plugin.tx_myext {
persistence {
storagePid = xxx
}
}
或在您的控制器中禁用对 pid 的要求,例如:
/** @var \TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings $querySettings */
$querySettings = $this->objectManager->get('TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings');
$querySettings->setRespectStoragePage(false);
$this->myRepository->setDefaultQuerySettings($querySettings);
在几乎所有情况下,这是由于在 Extbase 的持久性配置中设置了不正确的 storagePageUid
,在适用于您正在构建的扩展或后端模块的范围内。
其他可能的原因可能是使用了记录类型(请参阅 Extbase 附带的 FrontendUser 域模型)。如果您的域模型扩展或使用 fe_user
那么这些注意事项也适用于您的情况。此外,如果您在适用于您的 table 的 TCA 上声明了 enableFields
,这些将得到尊重。如果您的 table 支持语言,那么 sys_language_uid
也会生效。最后:如果您声明了 hidden
或 delete
字段,这些字段也将受到尊重。
如果您的用例要求您的 TCA 包含这样的 enableFields
但您构建的 plugin/module 不能遵守它们,您的选择是覆盖 Repository 上的 createQuery()
以操作 QuerySettings并强制 respectEnableFields
或其他人为 FALSE。
编辑:找到解决方案,缺少类型映射 TS:
config.tx_extbase.persistence.classes {
Vendor\ExtKey\Domain\Model\Record.mapping {
recordType = Tx_ExtKey_Domain_Model_Record`
}
}