如何获取包含所有前端用户组的列表?
我试过这个:
/**
* 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?
答案 0 :(得分:1)
错误表明依赖注入不起作用。请确保在执行数据库中缓存的更改后刷新系统缓存,这是更改类名或需要重建依赖项的更改的情况。
如果在开发上下文中运行TYPO3,则可以在安装工具中刷新系统缓存("重要操作")或直接在后端中清除系统缓存。 "刷新一般缓存"不会(!)刷新基于数据库的系统缓存。
根据您正在运行的TYPO3版本,您需要将前端用户组的记录类型(列" tx_extbase_type")设置为FrontendUserGroup。
不鼓励使用makeInstance生成存储库实例。您应该尽可能使用依赖注入(在这种情况下),或者在不可能的情况下使用ObjectManager。