TYPO3 findAll返回空
我的控制器里有这个:TYPO3 findAll返回空,typo3,extbase,typo3-6.2.x,Typo3,Extbase,Typo3 6.2.x,我的控制器里有这个: /** * shopUsrMasterdataRepository * * @var \TYPO3\BackendcustomerExtension\Domain\Repository\ShopUsrMasterdataRepository * @inject */ protected $shopUsrMasterdataRepository; $user = $this->shopUsrMasterdataRepository->fin
/**
* shopUsrMasterdataRepository
*
* @var
\TYPO3\BackendcustomerExtension\Domain\Repository\ShopUsrMasterdataRepository
* @inject
*/
protected $shopUsrMasterdataRepository;
$user = $this->shopUsrMasterdataRepository->findAll();
它返回空或null。。。但在数据库中有600个条目
有什么问题吗
使用TYPO3 6.2.31
谢谢通过打字脚本设置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
,那么这些注意事项也适用于您的案例。此外,如果您已在适用于您的表的TCA上声明了启用字段
,则将遵守这些字段。如果您的表支持语言,则sys\u language\u uid
也将生效。最后:如果您声明了隐藏
或删除
字段,这些字段也将得到尊重
如果您的用例要求您的TCA包含这样的启用字段
,但您构建的插件/模块必须不尊重它们,那么您可以选择覆盖存储库上的createQuery()
,以操纵查询设置,并强制相关启用字段
或其他设置为FALSE
编辑:找到解决方案,缺少类型映射TS:
config.tx_extbase.persistence.classes {
Vendor\ExtKey\Domain\Model\Record.mapping {
recordType = Tx_ExtKey_Domain_Model_Record`
}
}
检查是否设置了plugin.tx\u yourext.persistence.storagePid。否则,您的查询将在以下位置执行。。。如果所有条目都存储在rootpage uid=0中,那么pid=0将只起作用。我如何计算出正确的存储pid<代码>$user=$this->shopUsrMasterdataRepository->findByEmail($fe_user)->getFirst()代码>此返回值也为空请参见下文,检查打字脚本+查看数据库,在ShopUsrMasterdata表中为pid设置了哪些值所有记录都有pid 0可能重复的Storeage pid未在扩展的打字脚本中设置。我应该在哪里取消它?在存储库中?我已经在控制器中添加了代码。但是什么都没有改变错误信息是什么?我想我们需要更多的代码来发现问题只是一个Internal错误。没有提到你需要什么?昨天它工作得很好就像上面。。。自那以后,没有任何更改。选定的存储页面可以从上面的TS继承,也可以在每个插件实例中定义。我高度怀疑什么都没有改变——但我想接下来的挑战是确定发生了什么变化;)typo3版本6.2.4和6.2.31之间可能存在问题吗?在6.2.4版本中,它可以正常工作,在6.2.31版本中,版本跳转确实需要大约三年的bug修复合并,因此如果您的设置依赖于一个已经修复的bug,我不会感到惊讶。恐怕我不能告诉你具体是什么,但你可以随时阅读变更日志(全部27个)。我们发现了问题,它是一个已配置的
config.tx\u extbase.persistence.classes.Vendor\ExtKey\Domain\Model\Record.mapping.recordType=tx\u ExtKey\u Domain\u Model\u Record
,未包含在扩展生成器生成的类型字段中。你能在你的回答中包括这一点吗