Вопрос

Я получаю ответ JSON от MongoDB, но я не могу получить это в шаблон ветки. Может ли кто -нибудь объяснить это и показать лучшую практику? Спасибо.

/**
 * @Route("/event/{id}", name="event_details_view")
 * @Template()
 */
public function viewAction($id)
{
    $event = $this->get('doctrine.odm.mongodb.document_manager')
        ->getRepository('DungeonEventBundle:Event')
        ->findById($id);

    if (!$event) {
        throw $this->createNotFoundException('Event .$id. was not found.');
    }

    return new Response(json_encode($event));
}
Это было полезно?

Решение

Прежде всего, вы не получаете ответа JSON от MongoDB - вы получаете Event документ объект. Если вы хотите передать его Twig, вместо того, чтобы вернуть ответ, верните массив (поскольку вы используете @Template Аннотация:

return array('event' => $event);

Объект будет доступен в вашем шаблоне как event.

Другие советы

Лучшая практика, описывающая здесь, - это использовать base.json.twig шаблон, как описано здесь а также здесь, вместо Response(json_encode($data)).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top