【发布时间】:2019-09-18 00:56:24
【问题描述】:
我正在尝试从 Symfony 3.4 中的控制器返回 JSON 响应
这是我的控制器:
/**
* @Route("/message/board/post", name = "message_post")
* @Method("POST")
*/
public function postMeg(Request $request)
{
$entityManager = $this->getDoctrine()->getEntityManager();
$message = new message($request->request->get("txtName"));
$message->setMes($request->request->get("txtMes"));
$entityManager->persist($message);
$entityManager->flush();
return new JsonResponse(['result' => 'ok', 'ret' => array($entityManager)]);
}
但我明白了 {"result":"ok","ret":[{}]} 作为浏览器中的响应
我希望它可以显示为 ['结果' => '好的', 'ret' => txtName, txtMes ]
【问题讨论】:
-
这对我来说听起来并不合理。你期待什么样的回应?您能否edit 包含您希望此代码执行的操作?
-
尝试将
array($entityManager)更改为array($message)。还可以考虑为您的数组使用速记符号;从 5.4 开始就支持它们。 -
@maiorano84 我试试这个
return new JsonResponse(['result' => 'ok', 'ret' => array($message)]);但仍然显示 {"result":"ok","ret":[{}]} -
@Lai 这很奇怪。这意味着您的
$message变量可能未正确初始化。仔细检查您的类名并确保您的Message实体被正确引用。您可以通过在返回之前添加dd([$message, $entityManager])并查看输出来尝试进一步调试。如果您在其中任何一个中有 null 或空对象,那就是您的问题。 -
您的消息实体中是否有序列化程序组 (@groups)?