更改用户';s角色显示类型配置EasyAdminBundle Symfony2

更改用户';s角色显示类型配置EasyAdminBundle Symfony2,symfony,symfony2-easyadmin,Symfony,Symfony2 Easyadmin,我必须将用户的角色显示为一个列表:我不想键入它,而是想单击选项。我将获得诸如角色用户、角色管理员等选项 是否有比我在config.yml中所做的配置更改更多的配置更改 谢谢你的帮助, 是的。您必须使用及其扩展的选项(也可以选择使用多个选项)。请记住,用于表单类型的选项是在type\u options选项中定义的: easy_admin: # ... entities: User: # ... form:

我必须将用户的角色显示为一个列表:我不想键入它,而是想单击选项。我将获得诸如角色用户、角色管理员等选项

是否有比我在config.yml中所做的配置更改更多的配置更改

谢谢你的帮助, 是的。您必须使用及其
扩展的
选项(也可以选择使用
多个
选项)。请记住,用于表单类型的选项是在
type\u options
选项中定义的:

easy_admin:
    # ...
    entities:
        User:
            # ...
            form:
                fields:
                    - { property: 'roles', type: 'choice', type_options: { expanded: true } }
如果需要,还可以在YAML文件中定义选项:

easy_admin:
    # ...
    entities:
        User:
            # ...
            form:
                fields:
                    - property: 'roles'
                      type: 'choice'
                      type_options:
                        expanded: true
                        choices: { 'ROLE_USER': 'Normal user', 'ROLE_ADMIN': 'Administrator' }
对。您必须使用及其
扩展的
选项(也可以选择使用
多个
选项)。请记住,用于表单类型的选项是在
type\u options
选项中定义的:

easy_admin:
    # ...
    entities:
        User:
            # ...
            form:
                fields:
                    - { property: 'roles', type: 'choice', type_options: { expanded: true } }
如果需要,还可以在YAML文件中定义选项:

easy_admin:
    # ...
    entities:
        User:
            # ...
            form:
                fields:
                    - property: 'roles'
                      type: 'choice'
                      type_options:
                        expanded: true
                        choices: { 'ROLE_USER': 'Normal user', 'ROLE_ADMIN': 'Administrator' }

花了一段时间,但这里有一种可能的方法,可以添加复选框以向用户添加或删除角色
role\u ADMIN

在easyadmin配置中,为用户实体添加:
-{property:'hasRoleAdmin',label:'Is admin',type:checkbox}

或者,对于具有相同功能的下拉列表:

- {property: 'hasRoleAdmin', label: 'Role', type: choice, type_options: choices: {0: 'ROLE_USER', 1: 'ROLE_ADMIN'}}}
在用户实体中,添加:

public function hasRoleAdmin()
{
    return $this->hasRole('ROLE_ADMIN');
}

public function setHasRoleAdmin($isAdmin)
{
    if (true == $isAdmin && false == $this->hasRole('ROLE_ADMIN')) {
        $this->addRole('ROLE_ADMIN');

    }
    if (false == $isAdmin && true == $this->hasRole('ROLE_ADMIN')) {
        $this->removeRole('ROLE_ADMIN');
    }
    $this->isAdmin = $isAdmin;
}

花了一段时间,但这里有一种可能的方法,可以添加复选框以向用户添加或删除角色
role\u ADMIN

在easyadmin配置中,为用户实体添加:
-{property:'hasRoleAdmin',label:'Is admin',type:checkbox}

或者,对于具有相同功能的下拉列表:

- {property: 'hasRoleAdmin', label: 'Role', type: choice, type_options: choices: {0: 'ROLE_USER', 1: 'ROLE_ADMIN'}}}
在用户实体中,添加:

public function hasRoleAdmin()
{
    return $this->hasRole('ROLE_ADMIN');
}

public function setHasRoleAdmin($isAdmin)
{
    if (true == $isAdmin && false == $this->hasRole('ROLE_ADMIN')) {
        $this->addRole('ROLE_ADMIN');

    }
    if (false == $isAdmin && true == $this->hasRole('ROLE_ADMIN')) {
        $this->removeRole('ROLE_ADMIN');
    }
    $this->isAdmin = $isAdmin;
}

感谢您的快速回复,我尝试了这两种方法,当我单击“添加新用户”时,我得到了一个错误提示:“类型“array”的值无法转换为有效的数组键。“您对解决方案有什么想法吗?@AnisAbida也可以尝试将
multiple:true
添加到类型_选项中。您需要反转键和值(即交换角色用户和普通用户等)。感谢您的快速响应,我尝试了这两种方法,当我单击“添加新用户”时,我得到了一个错误提示:“类型为“array”的值无法转换为有效的数组键。”您对解决方案有什么想法吗?@AnisAbida也可以尝试在type_选项中添加
multiple:true
。您需要反转键和值(即交换角色用户和普通用户等)