我正在尝试使用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":[]}}}
我想我错过了一个最后的链接。也许与序列化器有关。希望有人能给我一个提示。
我读过(和尝试过)的文章是:
答案 0 :(得分:1)
我的问题在于datetime字段。我将ColdLeadType更改为:
$builder
// ...
->add('registeredAt', 'date', array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd'
)
)
现在我可以使用命令行curl。