我正在使用jQuery编辑我在Symfony中构建的表单 .
我在jQuery对话框中显示该表单,然后提交它 .
数据在数据库中正确输入 .
但我不知道是否需要将一些JSON发送回jQuery . 其实我对JSON的事情有点困惑 .
假设我在我的表中添加了一行jQuery,当我提交表单然后提交数据后,我想发回那些行数据,以便我可以动态添加表行来显示添加的数据 .
我很困惑如何才能获得这些数据
这是我目前的代码
$editForm = $this->createForm(new StepsType(), $entity);
$request = $this->getRequest();
$editForm->bindRequest($request);
if ($editForm->isValid()) {
$em->persist($entity);
$em->flush();
return $this->render('::success.html.twig');
}
这只是带有成功消息的模板
5 回答
从Symfony 3.1开始,您可以使用JSON Helper http://symfony.com/doc/current/book/controller.html#json-helper
Symfony 2.1有一个JsonResponse类 .
传入的数组将采用JSON编码,状态代码默认为200,内容类型将设置为application / json .
JSONP还有一个方便的
setCallback
功能 .要完成@thecatontheflat的答案,我建议你也将你的动作包裹在
try ... catch
块中 . 这将阻止您的JSON endpoints 在异常中中断 . 这是我使用的骨架:这样,即使发生错误,您的 endpoints 也会始终如一地运行,并且您可以在客户端对其进行处理 .
Symfony 2.1
Symfony 2.2 以及更高
你有特殊的JsonResponse类,它将数组序列化为JSON:
但如果您的问题是 How to serialize entity 那么您应该看一下JMSSerializerBundle
假设你安装了它,你就可以做到
您还应该检查StackOverflow上的类似问题:
How to encode Doctrine entities to JSON in Symfony 2.0 AJAX application?
Symfony 2 Doctrine export to JSON
如果您的数据已经序列化:
a)发送JSON响应
b)发送JSONP响应(带回调)
如果您的数据需要序列化:
c)发送JSON响应
d)发送JSONP响应(带回调)
e)在Symfony 3.x.x中使用组
Create groups inside your Entities
Normalize your Doctrine Object inside the logic of your application