Symfony2形式的多重选择与arraycollection



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

public function __construct()
{
    $this->roles = new ArrayCollection();
}

在我的表单上,我想通过多个选择表单元素向我的用户添加角色。在我的用户表单中:

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 ) );
}

现在我的多重选择是空的

如果我将映射为true,我得到一个错误消息:

UserRoles无法转换为int

我已经尝试了很多方法,但是我都不能正确地解决这个问题。

对于实体的选择,你应该使用特殊的选择字段类型'entity'(参见Symfony手册中的实体字段类型)。举个例子,看看我对一个类似问题的回答。如果你得到更多的错误,你可能也会发现这个问题在角色接口和管理角色有帮助。

对于fosuserbundle,我是这样做的:

        $builder->add('roles', 'choice', array(
        'multiple' => true,
        'choices' => array(
            'ROLE_USER' => 'User',
            'ROLE_AUTHOR' => 'Autor',
            'ROLE_MODERATOR' => 'Moderator',
            'ROLE_ADMIN' => 'Admin'
        ),
        'label' => 'Rollen',
        'required' => true
    ));

相关内容

  • 没有找到相关文章

最新更新