2017-05-23 25 views
1

我有TYPO3 7.6.18版本。TYPO3如何设置fe_user的用户组?

我正在定制登记和我在控制器中添加用户在我的代码:

$this->userRepository->add($user); 

我需要设置用户组

我想:

$user->setUsergroup(1); 

但它调用的错误:

PHP Catchable Fatal Error: Argument 1 passed to TYPO3\CMS\Extbase\Domain\Model\FrontendUser::setUsergroup() must be an instance of TYPO3\CMS\Extbase\Persistence\ObjectStorage, integer given, called in /home/abenteuer/public_html/typo3conf/ext/feusersplus/Classes/Controller/NewController.php on line 68 and defined in /home/abenteuer/public_html/typo3/sysext/extbase/Classes/Domain/Model/FrontendUser.php line 192 

我知道我应该将参数传递给setUsergroup(),它必须是TYPO3 \ CMS \ Extbase \ Persistence \ ObjectStorage的实例,但我不知道该怎么做。

请帮助我,任何人。我想设置用户组,例如,与UID 1

回答

2

你所需要的用户群体单独的存储库(或与现有FrontendUserGroupRepository开始)来检索组(S):

$userGroup = $this->userGroupRepository->findByIdentifier(1); 

然后,你可以简单地做到以下几点:

$user->addUsergroup($userGroup); 

然后添加$user到你的资料库像以前一样。

+0

非常感谢您!但现在我看到另一个错误! ()必须是TYPO3 \ CMS \ Extbase \ Persistence \ ObjectStorage的实例,In2code \ Femanager \ Domain \ Model \ UserGroup,在第70行调用/home/abenteuer/public_html/typo3conf/ext/feusersplus/Classes/Controller/NewController.php并在/ home/abenteuer/public_html/typo3/sysext/extbase/Classes/Domain/Model/FrontendUser.php line 192 – Mikael

+0

我也试过addUsergroup和我得到错误: PHP致命错误:调用成员函数attach()在非对象在/ home/abenteuer/public_html/typo3/sysext/extbase /类/域/模型/ FrontendUser.php – Mikael

+0

@Mikael如果你想使用'setUsergroup()',你需要自己准备一个'ObjectStorage'实例。由于'usergroup'属性的'ObjectStorage'是在'FrontendUser'构造函数中创建的,因此'addUsergroup'错误不应该发生。 –

0

我目前无法评论,但是你忘了一些东西,所以我创建了一个答案。

你只能使用$this->userGroupRepository->findByIdentifier(1);如果你注入库到控制器用下面的代码:

/** 
* userGroupRepository 
* 
* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository 
* @inject 
*/ 
protected $userGroupRepository = null;