Symfony:FOS用户捆绑包通过控制器提升用户

Rap*_*l_b 3 symfony

我是FOS用户包的新手.我有用户并且想要创建一个促进它们的功能(它将执行相同的操作:

php app/console fos:user:promote testuser ROLE_MANAGER 
Run Code Online (Sandbox Code Playgroud)

我的security.yml是:

role_hierarchy:
    ROLE_MANAGER:       ROLE_USER
    ROLE_ADMIN:         [ROLE_USER, ROLE_MANAGER, ROLE_ALLOWED_TO_SWITCH]
Run Code Online (Sandbox Code Playgroud)

知道如何从控制器那样做吗?我使用UserController.php创建了一个UserBundle来扩展FOS用户并创建一个配置文件.

Rap*_*l_b 6

找到解决方案:

public function promoteUserAction(){

    $user = $this->getUser();

    $userManager = $this->get('fos_user.user_manager');    
    $user->addRole('ROLE_ADMIN');
    $userManager->updateUser($user);

    return $this->render('ACMEBundle:User:page.html.twig');
} 
Run Code Online (Sandbox Code Playgroud)

希望它对其他人有用.干杯