symfony2使用arraycollection形成多个select

lor*_*cso 3 forms entity arraycollection multipleselection symfony

我想创建一个表单来编辑我的用户.用户和角色与ManyToMany连接.在UserUsers实体中,我有一个$ roles变量,它是ArrayCollection:

public function __construct()
{
    $this->roles = new ArrayCollection();
}
Run Code Online (Sandbox Code Playgroud)

在我的表单上,我想通过多个select表单元素向我的用户添加角色.在我的用户表格中:

public function buildForm( FormBuilderInterface $builder, array $options ) {
    $builder->add( 'username' )
            ->add( 'password', 'repeated', array( 
                    'type' => 'password',
                    'mapped' => false,
                    'required' => false,
                    'first_options' => array( 
                            'label' => 'Password' ),
                    'second_options' => array( 
                            'label' => 'Repeat Password' ) ) )
            ->add( 'roles', 'choice', array( 
                    'mapped' => false,
                    'multiple' => true ) );
}
Run Code Online (Sandbox Code Playgroud)

现在我的多重选择是空的.

如果我将map映射为true,我收到一条错误消息:

UserRoles无法在...中转换为int

我尝试了很多方法,但我无法正确解决这个问题.

red*_*rdo 6

对于实体的选择,您应该使用特殊选择字段类型"实体"(请参阅实体字段类型的 Symfony手册).举个例子,看看我对类似问题的回答.如果您遇到进一步的错误,您也可以在角色界面和管理角色上找到这个问题.