无法让我的表单生效

时间:2016-01-12 21:58:57

标签: forms rest symfony fosrestbundle

我想使用Symfony服务器(使用FOSRestBundle)创建ReST基础结构。 有

  • 联系实体,(身份证,姓名,电子邮件)
  • AddType表单以添加新联系人

在客户端,我有一个表单,它发送一个主体为

的POST请求

{" the_name_of_my contact_form":{" name":" foo"," email":" foo @ example.org"}}

我的控制器(扩展FOSRestController)可以看到请求中的数据

$ request-> request-> get($ form-> getName())返回 {" name":" foo&# 34;,"电子邮件":" foo@example.org"}

但我是否使用 $ form-> handleRequest($ request) $ form->提交($ data)

$ form-> isValid()始终为false

我希望这很清楚......任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

此问题与CRSF验证有关。您必须为请求该服务的用户禁用它。您可以在config.yml中禁用它。你必须设置这样的东西:

fos_rest:
    disable_csrf_role: ROLE_API

只需确保请求您的服务的用户具有此角色。您可以阅读有关用户角色here的更多信息。

此外,您必须提交表单,而不是处理它。以下是它的片段:

    $form = $this->createForm(ProjectType::class, $project);
    $form->submit($request->request->all());

    if ($form->isValid()) {