我的控制器里有这个:
/**
* shopUsrMasterdataRepository
*
* @var
\TYPO3\BackendcustomerExtension\Domain\Repository\ShopUsrMasterdataRepository
* @inject
*/
protected $shopUsrMasterdataRepository;
$user = $this->shopUsrMasterdataRepository->findAll();
它返回空或null ...但是在数据库中有大约600个条目。
可能是什么问题?
使用TYPO3 6.2.31
由于
答案 0 :(得分:4)
通过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);
答案 1 :(得分:3)
几乎在所有情况下,这都是由于Extbase的持久性配置中设置了不正确的storagePageUid
,在适用于您的扩展或后端模块的范围内,无论您正在构建哪个。
其他可能的原因可能是使用记录类型(请参阅Extbase附带的FrontendUser域模型)。如果您的域模型扩展或使用fe_user
,则这些注意事项也适用于您的案例。此外,如果您已在适用于您的桌子的TCA上声明enableFields
,则这些将受到尊重。如果您的表支持语言,则sys_language_uid
也会生效。最后:如果您宣布hidden
或delete
字段,这些也将得到尊重。
如果您的用例要求您的TCA包含此类enableFields
,但您构建的插件/模块必须不尊重它们,您的选择是覆盖存储库上的createQuery()
以操纵QuerySettings并强制{{ 1}}或其他人为FALSE。
编辑:找到解决方案,缺少类型映射TS:
respectEnableFields