TYPO3如何为fe_user设置用户组?

时间:2017-05-23 08:37:27

标签: typo3

我有TYPO3版本7.6.18。

我正在进行自定义注册,我在控制器的代码中添加了用户:

$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 个答案:

答案 0 :(得分:2)

您需要一个单独的用户组存储库(或以现有的FrontendUserGroupRepository开头)来检索组:

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

然后您可以简单地执行以下操作:

$user->addUsergroup($userGroup);

然后像以前一样将$user添加到您的存储库。

答案 1 :(得分:0)

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

如果使用以下代码将存储库注入Controller,则只能使用$this->userGroupRepository->findByIdentifier(1);

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