一尘不染

如何在symfony2控制器中发送JSON响应

json

我正在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');               
}

这只是带有成功消息的模板。


阅读 201

收藏
2020-07-27

共1个答案

一尘不染

Symfony 2.1

$response = new Response(json_encode(array('name' => $name)));
$response->headers->set('Content-Type', 'application/json');

return $response;

Symfony 2.2 及更高版本

您具有特殊的JsonResponse类,该类将数组序列化为JSON:

return new JsonResponse(array('name' => $name));

但是,如果您的问题是 如何序列化实体,
那么您应该看看JMSSerializerBundle

假设您已安装它,只需要做

$serializedEntity = $this->container->get('serializer')->serialize($entity, 'json');

return new Response($serializedEntity);
2020-07-27