Ожидаемый аргумент типа «массив», «строка», заданный в пути свойств «роли». в Symfony - PullRequest
0 голосов
/ 09 марта 2020

Я просто пытаюсь добавить скрытое в форме поле, передав значение по умолчанию в поле "Роли" в symfony. Я проверяю несколько учебных пособий, но не могу найти именно то, что ищу.

Я указываю, как я сохраняю поле «роли» в моей базе данных, я указываю, как поле «Роли» объявляется в моей сущности. а также я ставлю, как я пытаюсь отправить данные скрытым в форме.

Это мой 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'
        ));

Это ошибка

Я не могу передать массив, он говорит мне каждый раз, когда я передаю ему строку. Я пробовал несколько синтаксисов, я не могу этого сделать, может кто-нибудь помочь мне, пожалуйста? Я новичок в Symfony 5 Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 09 марта 2020

Почему бы вам не установить роль в контроллере напрямую, как это?

$user->setRoles(['ROLE_PARTICULAR']);
...