我试图获取所有前端用户组的列表
我试过这个:
/**
* Protected Variable FrontendUserGroupRepository wird mit NULL initialisiert.
*
* @var \ReRe\Rere\Domain\Repository\FrontendUserGroupRepository
* @inject
*/
protected $FrontendUserGroupRepository = NULL;
然后这个
$feUserGroups = $this->frontendUserGroupRepository->findAll();
但即使数据库中有2个用户组,列表也始终为空。
更新...我尝试将其作为存储库
class FrontendUserGroupRepository extends \Typo3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository {
// Example for repository wide settings
public function initializeObject() {
/** @var $defaultQuerySettings Tx_Extbase_Persistence_Typo3QuerySettings */
$defaultQuerySettings = $this->objectManager->get('Tx_Extbase_Persistence_Typo3QuerySettings');
// go for $defaultQuerySettings = $this->createQuery()->getQuerySettings(); if you want to make use of the TS persistence.storagePid with defaultQuerySettings(), see #51529 for details
// don't add the pid constraint
$defaultQuerySettings->setRespectStoragePage(FALSE);
// don't add fields from enablecolumns constraint
$defaultQuerySettings->setRespectEnableFields(FALSE);
// don't add sys_language_uid constraint
$defaultQuerySettings->setRespectSysLanguage(FALSE);
$this->setDefaultQuerySettings($defaultQuerySettings);
}
}
但是我收到了这个错误:
无法分析类:Typo3 \ CMS \ Extbase \ Domain \ Repository \ FEUserGroupsRepositry可能未加载或没有自动加载器
我添加了一个新的dependecy注入并重新安装了模块...
答案 0 :(得分:4)
默认情况下,每个Extbase存储库都将标志respectStoragePage
设置为true,这意味着需要将用户组放置在exts常量中配置为默认存储PID 的页面中,无论如何,正如我所见,你可能根本不包括它。
在这种情况下,您需要创建扩展FrontendUserGroupRepository的自己的存储库,然后在不尊重存储的情况下对其进行初始化。
在official docs中描述了它。
编辑:如果您在扩展程序构建器中扩展某些模型/存储库,则会自动将您的存储库限制为仅适用于您的类型的对象,即通过添加TS映射:
recordType = Tx_Rere_FrontendUserGroup
因此,如果您想要访问扩展模型的所有记录,只需从recordType
完全删除ext_typoscript_setup.txt
(不要忘记清除系统缓存)。