Есть два способа добиться этого, это зависит от того, что вы предпочитаете и поддерживает ли ваше действие несколько типов _format
.
Вариант A - действие, которое возвращает толькоJSON
Вы можете полностью обойти шаблон.
В вашем контроллере удалите аннотацию @Template
и вместо нее return new Response(json_encode($process_data));
Опция B - Anдействие, которое поддерживает различные форматы ИЛИ вы просто хотите отобразить JSON в шаблоне
Под действием, которое отображает различные форматы, я ссылаюсь на действие с маршрутом следующим образом:
@Route("/check/{key}.{_format}", defaults={"_format"="json"}
@Template
Хотя контроллер в этом вопросе идет по пути «действия, которое поддерживает только JSON, но вы хотите отобразить его в шаблоне».
Предполагая, что контроллер processAction
возвращает return array('data' => $process_data);
в качестве вопросапросит затем сделать рендеринг в виде JSON внутри шаблона с именем process.json.twig
следующим образом {{ data|json_encode }}
, нет необходимости предварительно обрабатывать data
или превратить его в другой массив или что-то подобноеIde шаблон.