JSON Response включает функцию в PHP - PullRequest
       1

JSON Response включает функцию в PHP

0 голосов
/ 24 сентября 2019

У меня есть один код PHP, который имеет ответ JSON.

Мне нужно разделить ['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')]]);
}

Надеюсь, это разумно иесть способы сделать это.

Я ценю любую помощь.

Я надеюсь, что это может понравиться

/**
     * @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');
    }

Ответы [ 3 ]

0 голосов
/ 24 сентября 2019

Требуемый формат кодируется 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')]);
}

Документация php json_encode

0 голосов
/ 25 сентября 2019

Наконец, я пробую следующий код:

controller.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]);
}

entity.php

public 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 "}}}

0 голосов
/ 24 сентября 2019

Возможно, вы захотите сделать это вместо этого:

private function jsonreturn($message) {
  return ['name' => $message->getName(), 'mes' => $message->getMes(), 'update_time' => $message->getUpdateTime()->format('Y-m-d H:i:s')];
}

просто передайте объект $message этой функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...