我有一个用户编辑表单,我想在其中管理分配给用户的角色。
目前我有一个多选列表,但我无法使用 security.yml 中定义的角色层次结构填充它。
有什么方法可以将这些信息传递给 FormType 类中的表单构建器?
$builder->add('roles', 'choice', array(
'required' => true,
'multiple' => true,
'choices' => array(),
));
环顾四周,我发现我可以从控制器中的容器中获取角色:
$roles = $this->container->getParameter('security.role_hierarchy.roles');
我还发现我可能会将其设置为要在 services.xml 中的 FormType 类上注入的依赖项:
<parameters>
<parameter key="security.role_heirarchy.roles">ROLE_GUEST</parameter>
</parameters>
<services>
<service id="base.user.form.type.user_form" class="Base\UserBundle\Form\UserType" public="false">
<tag name="form.type" />
<call method="setRoles">
<argument>%security.role_heirarchy.roles%</argument>
</call>
</service>
</services>
但是,这不起作用,并且似乎从未调用过该setRoles
方法。
那么我怎样才能让它工作呢?