REST POST没有数据?

时间:2013-04-16 08:41:52

标签: rest symfony fosrestbundle

我正在尝试使用Symfony2创建REST服务。我跟着几篇文章,得到了GET功能;我可以获取我的对象或特定对象的列表。但是使用POST将我的对象保存到数据库不起作用。我正在使用FOSRestBundle。

我创建了我的实体Coldlead,我的表格ColdleadType,并在控制器中创建了我的newAction。但是,当我在bash上使用curl测试POST操作时,似乎FORM没有收到任何信息。

这是我执行的命令:

curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"coldlead":{"registeredAt":"2013-04-12", "firstName": "John", "lastName": "Doe"}}' http://mvibesemail.roland.local/app_dev.php/coldleads | less

响应是:

{"form":{"children":{"firstName":[],"lastName":[],"email":[],"registeredAt":{"errors":["This value should not be blank."],"children":{"date":{"children":{"year":[],"month":[],"day":[]}},"time":{"children":{"hour":[],"minute":[]}}}},"ip":[],"fromSiteUrl":[],"isConfirmed":[],"isVerified":[],"isMember":[],"unsubscribeUrl":[]}}}

我想我错过了一个最后的链接。也许与序列化器有关。希望有人能给我一个提示。

我读过(和尝试过)的文章是:

1 个答案:

答案 0 :(得分:1)

我的问题在于datetime字段。我将ColdLeadType更改为:

$builder
  // ...
  ->add('registeredAt', 'date', array(
      'widget' => 'single_text',
      'format' => 'yyyy-MM-dd'
    )
  )

现在我可以使用命令行curl。