Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TYPO3 findAll返回空_Typo3_Extbase_Typo3 6.2.x - Fatal编程技术网

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\M‌​odel\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
,未包含在扩展生成器生成的类型字段中。你能在你的回答中包括这一点吗