php – Symfony 3 – 如何使用表单处理JSON请求
|
我很难弄清楚如何使用Symfony表单处理 JSON请求(使用v3.0.1). 这是我的控制器: /**
* @Route("/tablet")
* @Method("POST")
*/
public function tabletAction(Request $request)
{
$tablet = new Tablet();
$form = $this->createForm(ApiTabletType::class,$tablet);
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($tablet);
$em->flush();
}
return new Response('');
}
我的形式: class ApiTabletType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder,array $options)
{
$builder
->add('macAddress')
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'AppBundleEntityTablet'
]);
}
}
当我发送POST请求并将Content-Type标头正确设置为application / json时,我的表单无效…所有字段都为空. 如果我评论if($form-> isValid())行,这是我得到的异常消息:
我每次尝试发送不同的JSON,结果相同: > {“id”:“9”,“macAddress”:“5E:FF:56:A2:AF:15”} “api_tablet”是getBlockPrefix返回的内容(Symfony 3相当于Symfony 2中的表单类型getName方法). 谁能告诉我我做错了什么? 更新: 我尝试在我的表单类型中覆盖getBlockPrefix.表单字段不再有前缀,但仍然没有运气:/ public function getBlockPrefix()
{
return '';
}
$data = json_decode($request->getContent(),true);
$form->submit($data);
if ($form->isValid()) {
// and so on…
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
