Ошибка Symfony 4.x ROLE_USER при рендеринге формы с помощью $ form-> createView () - PullRequest
0 голосов
/ 28 марта 2019

Я создаю блог с Symfony 4 и создаю формы с:

php bin / console make: форма

когда я пытаюсь сделать это так:

    /**
    *   Require ROLE_USER for only this controller method.
    *   @Route("/create", name="post.create")
    *   @return Response
    */
    public function create(): Response
    {
        $post = new Post();
        $form = $this->createForm(CreatePostType::class, $post);

        return new Response($this->twig->render('pages/create.html.twig'), [
            'form' => $form->createView()
        ]);
    }

Я получаю эту ошибку

Не удалось преобразовать значение базы данных "ROLE_USER" в тип доктрины json

для этой строки

'form' => $ form-> createView ()

Вот мои getRoles:

    /**
     * @see UserInterface
     */
    public function getRoles(): array
    {
        $roles = $this->roles;

        // guarantee every user at least has ROLE_USER
        $roles[] = 'ROLE_USER';

        return array_unique($roles);
    }

и мой security.yaml

security:
    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    providers:
        in_memory: { memory: ~ }
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            anonymous: ~

Я ищу 3 дня и перезапускаю свой проект во втором каталоге без управления безопасностью, я не понимаю, откуда он и как его решить

спасибо

1 Ответ

0 голосов
/ 02 апреля 2019

Я полагаю, что свойство role не хранится в вашей базе данных как json-type.Можете ли вы проверить тип поля ролей в базе данных?

В качестве идентификатора вы можете переписать ответ на:

return $this->render('pages/create.html.twig', [
  'form' => $form->createView(),
]);
...