1

因此,我已经阅读了该捆绑包的文档,但没有任何内容描述如何列出现有角色或为特定用户分配/更改卷。我需要能够:

  1. 为新注册的用户分配默认角色。
  2. 让管理员和超级管理员提升和降级用户。
    • 这要求我能够看到我可以选择哪些角色。

那么,这是如何做到的呢?

4

1 回答 1

4

你可以这样做:

$roleHierarchy = $container->getParameter('security.role_hierarchy.roles');
$roles = array_keys($roleHierarchy);
$form = $this->createForm(new UserFormType($roles, $user->getRoles()), $user);

在您的 UserFormType 中,您可以像这样添加角色字段:

protected $roles;
protected $userRoles;

public function __construct($roles, $userRoles)
{

    foreach ($roles as $role) {
        $theRoles[$role] = $role;
    }
    $this->roles = $theRoles;
    $this->userRoles = $userRoles;

}

public function buildForm(FormBuilderInterface $builder, array $options)
{               

    $builder->add('roles', 'choice', array(
                    'choices' => $this->roles,
                    'data' => $this->userRoles,
                    'expanded' => true,
                    'multiple' => true,
                ));

}
于 2013-04-24T14:39:58.767 回答