我有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。
答案 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;