获取前端用户组列表

Get list of Frontend Usergroups

我试图获取包含所有前端用户组的列表

我试过这个:

    /**
 * 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);
    }

}

但是我得到了这个错误:

Could not analyse class:Typo3\CMS\Extbase\Domain\Repository\FEUserGroupsRepositry maybe not loaded or no autoloader

我添加了新的依赖注入并重新安装了模块...

默认情况下,每个 Extbase 存储库的标志 respectStoragePage 设置为 true,这意味着用户组需要放置在配置为 默认存储 PID 的页面上在你的 exts 常量中,无论如何我看到你可能根本不包括它。

在这种情况下,您需要创建自己的存储库来扩展 FrontendUserGroupRepository,然后在不考虑存储的情况下对其进行初始化。

official docs中有描述。

编辑:如果您在扩展构建器中扩展一些 model/repo 会自动将您的回购限制为您类型的对象,即通过添加 TS 映射:

 recordType = Tx_Rere_FrontendUserGroup

因此,如果您想访问扩展模型的所有记录,只需从 ext_typoscript_setup.txt 中完全删除 recordType(不要忘记清除系统缓存)。