获取TYPO3 FE_User组列表

时间:2014-12-24 09:32:46

标签: typo3 extbase

如何获取包含所有前端用户组的列表?

我试过这个:

/**
 * feUserGroupRepository
 *
 * @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository
 * @inject
 */
protected $feUserGroupRepository = NULL;`

然后这个:

$usergroups = $this->feUserGroupRepository->findAll();

我收到此错误:在非对象

上调用成员函数findAll()

我试过这种方式:

/**
 * @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository $feUserGroupRepository
 */
  $feUserGroupRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Domain\\Repository\\FrontendUserGroupRepository');
  $allUsers = $feUserGroupRepository->findAll();`

根本不能正常工作我收到此错误消息

PHP Catchable致命错误:参数1传递给

TYPO3\CMS\Extbase\Persistence\Repository::__construct() must implement interface
TYPO3\CMS\Extbase\Object\ObjectManagerInterface, none given, called in
C:\xampp\htdocs\typo3\typo3\sysext\core\Classes\Utility\GeneralUtility.php on 
line 4431 and
defined in C:\xampp\htdocs\typo3\typo3\sysext\extbase\Classes\Persistence\Repository.php

如何获取包含所有feusergroups的列表?

Rcord Type? enter image description here

1 个答案:

答案 0 :(得分:1)

错误表明依赖注入不起作用。请确保在执行数据库中缓存的更改后刷新系统缓存,这是更改类名或需要重建依赖项的更改的情况。

如果在开发上下文中运行TYPO3,则可以在安装工具中刷新系统缓存("重要操作")或直接在后端中清除系统缓存。 "刷新一般缓存"不会(!)刷新基于数据库的系统缓存。

根据您正在运行的TYPO3版本,您需要将前端用户组的记录类型(列" tx_extbase_type")设置为FrontendUserGroup。

不鼓励使用makeInstance生成存储库实例。您应该尽可能使用依赖注入(在这种情况下),或者在不可能的情况下使用ObjectManager。