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 也会生效。最后:如果您声明了 hiddendelete 字段,这些字段也将受到尊重。

如果您的用例要求您的 TCA 包含这样的 enableFields 但您构建的 plugin/module 不能遵守它们,您的选择是覆盖 Repository 上的 createQuery() 以操作 QuerySettings并强制 respectEnableFields 或其他人为 FALSE。

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

config.tx_extbase.persistence.classes {
    Vendor\ExtKey\Domain\M‌​odel\Record.mapping {
        ​recordType = Tx_ExtKey_Domain_Model_Record`
    }
}