Вы здесь

Как вывести текст в ноде, если определенное поле при ее создании не заполнено?

1

сначала прячу поле из общего вывода

 {% block content %}
    {{ content|without('body',' 'field_screenshots')  }}
    {{ content.body }}
      {% endblock %}

далее вывожу условие, которое по идее должно проверять пустое поле или нет

   {% if content.field_screenshots  %}
<div>
            <div class="spoiler_body">{{ content.field_screenshots }}</div>
          </div>
{% else %}
          Скрины не готовы

        {% endif %}

И условие не срабатывает, все равно выводится поле и лейбл.

Версия Drupal: 
8.x
Категория: 
Node API
Вопрос задан 05.11.2016 - 17:11

Ответы

0

{% if content.field_myfield is not empty %}
...
{% endif %}

Ответ дан 05.11.2016 - 20:34

к сожалению не выходит так. пробовал даже на elseif is empty вешать, все равно поле появляется

Комментарий оставлен 05.11.2016 - 21:27

методом научного тыка и с описанием твига http://x-twig.ru/tests/ обнаружилось что все эти условия проверяют установлено ли в отображении полей для ноды это поле, но никак не значение самого поля.

Комментарий оставлен 05.11.2016 - 22:40
0
{% if node.field_screenshots  %}

{% else %}

{% endif %}
Ответ дан 06.11.2016 - 01:26
Аватар пользователя xandeadx
xandeadx
1542

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

Комментарий оставлен 06.11.2016 - 07:38

так выводится поле независимо от отображения. и else не срабатывает

Комментарий оставлен 06.11.2016 - 07:50

сработало так {% if node.field_screenshots is not empty %}
Всем спасибо!

Комментарий оставлен 06.11.2016 - 08:20