获取前端用户组列表

时间:2015-01-06 15:59:40

标签: typo3 extbase typo3-6.2.x

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

我试过这个:

    /**
 * 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注入并重新安装了模块...

1 个答案:

答案 0 :(得分:4)

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

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

official docs中描述了它。

编辑:如果您在扩展程序构建器中扩展某些模型/存储库,则会自动将您的存储库限制为仅适用于您的类型的对象,即通过添加TS映射:

 recordType = Tx_Rere_FrontendUserGroup

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