Создайте действительный объект JSON в Twig - PullRequest
0 голосов
/ 30 мая 2018

Итак, я пытаюсь построить объект JSON в шаблоне Twig и столкнулся с некоторыми проблемами.Ответ на запрос POST с помощью чего-то подобного от Twig работает нормально:

{"urls": ["/a","/b"]}

Однако, если есть недопустимый json, например, конечная запятая, как здесь;

{"urls": ["/a","/b",,,,,]}

затем javascript жалуется, когда получает его (что имеет смысл, поскольку он недействителен).

Выполнение чего-либо подобного всегда приводит к неверному JSON из-за запятой:

{"urls": [
{% for i in objects %}
    "/img/example/'~i.get_url()",
{% endfor %}
]}

Вопрос:

Итак, как вы используете Twig для циклического перемещения по массиву объектов и построения допустимого объекта JSON?

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Вы можете создать собственный фильтр веток и вывести его на страницу, например:

{{ objects |obj2Json }}

В фильтре вы можете просто json_encode объекта.

https://symfony.com/doc/current/templating/twig_extension.html

0 голосов
/ 30 мая 2018

Вы можете проверить, является ли последняя итерация цикла стандартной переменной ветки цикла , например:

{"urls": [
{% for i in objects %}
    "/img/example/'{{i.get_url()}}"{% if not loop.last %}  , {%endif%}
{% endfor %}
]}

Проверьте этот рабочий пример

Надеюсь, что эта помощь

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