Рейтинг:0

Проверьте, не пусто ли поле внутри шаблона абзаца ветки

флаг pe

Я знаю, как проверить, пусто ли поле в шаблоне ветки (пример node--lorem.html.twig):

{%, если node.field_lorem.value не пусто %}

    <p>не пусто</p>

{% еще %}  

    <p>пусто</p>

{% конец%}  

Я хотел бы проверить, не пусто ли поле внутри шаблона ветки абзаца (пример абзац --lorem.html.twig). Но это не работает:

{%, если content.field_lorem.value не пусто %}

или же

{%, если node.field_lorem.value не пусто %}

Я могу отобразить значение этого поля следующим образом:

{{ content.field_lorem }}
флаг pe
Почему минус? Я мог бы улучшить вопрос, если бы знал, почему.
флаг ru
[Как получить необработанное значение поля в шаблоне ветки?](https://drupal.stackexchange.com/questions/228388/how-do-i-get-the-raw-field-value-in-a- twig-template) — заменить «узел» на «абзац».
флаг pe
@Hudri Нет, я просто хочу проверить, пусто ли поле абзаца. Я не хочу получать необработанное значение.
leymannx avatar
флаг ne
`{%, если para.field_lorem.value %}`, а не `node`. Не «контент». `content` содержит только те поля, которые были добавлены к отображению вашей сущности.
флаг pe
@leymannx Спасибо. Это работает отлично. Можете ли вы опубликовать свой ответ? Я приму это.
4uk4 avatar
флаг cn
Я не минусовал, но вы могли бы улучшить вопрос, потому что пример, который вы цитируете, не соответствует названию вопроса. Вы полагаетесь на то, что значение поля оценивается как истинное или ложное, что не то же самое, что поле пусто или нет. Для этого вы можете использовать [isEmpty()](https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21TypedData%21Plugin%21DataType%21ItemList.php/function/ItemList%3A%3AisEmpty )
флаг pe
@ 4k4 Я понимаю. Я думал, что `{%, если node.field_lorem.value %}` похоже на `{%, если node.field_lorem.value не пуст %}`. Я изменил вопрос, так лучше?
4uk4 avatar
флаг cn
Вам не нужно сначала получать значение поля. Вы можете проверить сам объект поля, и тогда это работает для любого типа поля, а также для тех, кто не использует имя свойства `value`. Я добавил пример кода в качестве ответа.
флаг pe
@4k4 Большое спасибо. Для меня это намного понятнее, и я смогу улучшить свой код с помощью вашего ответа (я не знал `ItemList::isEmpty`).
Рейтинг:3
флаг cn

Чтобы проверить, пусто ли поле, используйте ItemList:: isEmpty

Узел

{% если node.field_example.isempty %}
  <p>Поле пусто</p>
{% конец%}

Пункт

{% если para.field_example.isempty %}
  <p>Поле пусто</p>
{% конец%}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.