在属性路径“角色”中给出的“数组”,“字符串”类型的预期参数。在Symfony中

问题描述 投票:-2回答:1

我只是想通过将默认值传递给symfony中的“ Roles”字段来添加隐藏在表单中的字段。我检查了多个老师,但没有找到我想要的东西。

[我将如何在数据库中保存字段“ roles”,我将如何在实体中声明“ Roles”字段,并且我也尝试通过隐藏在表单中的方式来发送数据。

这是我的UsersEntity,我在其中保存了“角色”

 /**
 *
 * @ORM\Column(name="roles", type="array", nullable=false)
 */
private $roles = [];

public function getRoles(): ?array
{
    $roles = $this->roles;
    $roles[] = 'ROLE_USER';
    return array_unique($roles);
}

public function setRoles(array $roles): self
{
    $this->roles = $roles;

    return $this;
}

这是我的RegistrationFormType

$builder
        ->add('email')
        ->add('username')
        ->add('lastName')
        ->add( 'firstName')
        ->add('address')
        ->add( 'phone')
        ->add( 'city')
        ->add('postalCode')
        ->add('roles', HiddenType::class, array(
            'data' => 'ROLE_PARTICULAR'
        ));

This is the error

我无法传递数组,每次我向他传递字符串时,他都会告诉我。我尝试了几种语法,但我做不到,有人可以帮我吗?我是Symfony 5的新手谢谢您的帮助。

arrays string symfony symfony-forms symfony5
1个回答
-1
投票

为什么不像这样直接在控制器中设置角色?

$user->setRoles(['ROLE_PARTICULAR']);
© www.soinside.com 2019 - 2024. All rights reserved.