我正在用Symfony 4创建一个博客,并使用:
php bin /控制台make:form
当我尝试像这样渲染它时:
/**
* 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'”转换为Doctrine类型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天,然后在没有安全管理的情况下在第二个目录中重新启动我的项目,我不知道它来自何处以及如何解决
谢谢
答案 0 :(得分:0)
我猜Roles属性没有以json-type存储在数据库中。您可以检查数据库中角色字段的类型吗?
作为旁注,您可以将响应重写为:
return $this->render('pages/create.html.twig', [
'form' => $form->createView(),
]);