TYPO3 findAll返回空

时间:2017-05-18 11:57:40

标签: typo3 extbase typo3-6.2.x

我的控制器里有这个:

/**
 * shopUsrMasterdataRepository
 *
 * @var 

\TYPO3\BackendcustomerExtension\Domain\Repository\ShopUsrMasterdataRepository
 * @inject
 */
protected $shopUsrMasterdataRepository;

    $user = $this->shopUsrMasterdataRepository->findAll();

它返回空或null ...但是在数据库中有大约600个条目。

可能是什么问题?

使用TYPO3 6.2.31

由于

2 个答案:

答案 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也会生效。最后:如果您宣布hiddendelete字段,这些也将得到尊重。

如果您的用例要求您的TCA包含此类enableFields,但您构建的插件/模块必须不尊重它们,您的选择是覆盖存储库上的createQuery()以操纵QuerySettings并强制{{ 1}}或其他人为FALSE。

编辑:找到解决方案,缺少类型映射TS:

respectEnableFields