JSON 响应包含 PHP 中的函数

我有一个具有 JSON 响应的 PHP 代码。


我需要将其分离['name' => $message->getName(), 'mes' => $message->getMes(), 'update_time' => $message->getUpdateTime()->format('Y-m-d H:i:s')]成一个独立的函数。当我需要时,我可以调用它。


但是,我不知道该怎么做。


这是我的控制器


/**

* @Route("/message/board/reset/{id}", name = "message_reset", requirements = {"id" = "\d+"})

*/

public function editMeg($id)

{

    $entityManager = $this->getDoctrine()->getEntityManager();

    $message = $entityManager->find('MegBundle:message', $id);

    $UserN = $message->getName();

    $UserM = $message->getMes();

    return new JsonResponse(['result' => 'ok', 'ret' => ['name' => $message->getName(), 'mes' => $message->getMes(), 'update_time' => $message->getUpdateTime()->format('Y-m-d H:i:s')]]);

}

我希望这是合理的,并且有办法做到这一点。


我很感激任何帮助。


我Heop它可以像这样


/**

     * @Route("/message/board/updata/{id}", name = "message_updata", requirements = {"id" = "\d+"})

     * @Method("PUT")

     */

    public function updataMeg(Request $request, $id)

    {

        $entityManager = $this->getDoctrine()->getEntityManager();

        $message = $entityManager->find('MegBundle:message', $id);

        $message->setMes($request->request->get("txtMes"));

        $entityManager->flush();

        return new JsonResponse(['result' => 'ok', 'ret' => jsonreturn()]);

    }

    public function jsonreturn()

    {

        $json = 'name' => $message->getName(), 'mes' => $message->getMes(), 'update_time' => $message->getUpdateTime()->format('Y-m-d H:i:s');

    }


长风秋雁
浏览 185回答 3
3回答

繁花如伊

最后,我尝试以下代码:控制器.php:/*** @Route("/message/board/updata/{id}", name = "message_updata", requirements = {"id" = "\d+"})* @Method("PUT")*/public function updataMeg(Request $request, $id){    $entityManager = $this->getDoctrine()->getEntityManager();    $message = $entityManager->find('MegBundle:message', $id);    $message->setMes($request->request->get('txtMes'));    $entityManager->flush();    $message->toArray($message);    return new JsonResponse(['result' => 'ok', 'ret' => $message]);}实体.phppublic function toArray($message){    $this->message = array('name' => $message->getName(), 'mes' => $message->getMes(), 'update_time' => $message->getUpdateTime()->format('Y-m-d H:i:s'));}我得到{"result":"ok","ret":{"message":{"name":"AAA","mes":"test","update_time":"2019-09-25 08:13:04 "}}}

狐的传说

也许你想这样做:private function jsonreturn($message) {  return ['name' => $message->getName(), 'mes' => $message->getMes(), 'update_time' => $message->getUpdateTime()->format('Y-m-d H:i:s')];}只需将$message对象传递给此函数

犯罪嫌疑人X

您需要的格式是json编码的,因此,您可以尝试以下代码:private function jsonreturn($message) {  echo json_encode(['name' => $message->getName(), 'mes' => $message->getMes(), 'update_time' => $message->getUpdateTime()->format('Y-m-d H:i:s')]);}
打开App,查看更多内容
随时随地看视频慕课网APP