Как я могу проверить, существует ли динамическая переменная? - PullRequest
0 голосов
/ 18 октября 2019

Я работаю над шаблоном ветки, который получает от внутреннего сервера несколько URL-адресов аватаров (avatar_url_1, avatar_url_2 и т. Д.). Если я ничего не получу, мне нужно отобразить изображение аватара по умолчанию.

ex. avatar_url_1 - я получаю ссылку, avatar_url_2 - ссылка, avatar_url_3 - равен нулю, нет, я должен использовать URL по умолчанию, avatar_url_4 - ссылка.

Я пытался

{% for i in range(1, 7) %}
{{ elements.avatar("*|avatar_url_" ~ i ~ "|*")}}
...

с этим макросом

{% macro avatar(url) %}
    <img src="{% if url | default(false) %}{{url}}{% else %}https://PATH_TO_DEFAULT_IMAGE{% endif %}" />
{% endmacro %}

но это не работает. Если переменная не существует, путь к изображению прерывается без использования пути по умолчанию.

Как проверить, существует ли каждый author_avatar_url_ без выхода из цикла?

1 Ответ

0 голосов
/ 19 октября 2019

Возможно, вы захотите использовать функцию attribute в сочетании со специальной переменной _context, которая содержит все известные переменные в шаблоне.

{% for i in range(1, 7) %}
    {{ elements.avatar(attribute(_context, "*|avatar_url_" ~ i ~ "|*") | default(null))}}
{% endfor %}

демо

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