从 Symfony 中的控制器返回 Json 响应

我正在尝试从 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":[{}]} 作为响应


我希望它可以显示为 ['result' => 'ok', 'ret' => txtName, txtMes ]


慕妹3242003
浏览 171回答 1
1回答

呼唤远方

您应该使用$message而不是$entityManager评论中提到的,但将实体传递给new JsonResponse()将仅包含public消息实体中的属性,它们通常都是private. 有很多方法可以做到这一点,但最简单的方法是使用实体的 getter 准确插入您想要的内容:return new JsonResponse([  'result' => 'ok',  'ret' => [    'txtName' => $message->getTxtName(),    'txtMes ' => $message->getTxtMes(),  ],]);
打开App,查看更多内容
随时随地看视频慕课网APP