web-dev-qa-db-ja.com

ノードテンプレートでフィールドが空かどうかを確認するにはどうすればよいですか?

私はDrupal 8.を使用しています。ノードテンプレートに段落フィールド(フィールドタイプ:参照リビジョンの段落)があります。フィールドが空かどうかを確認する方法をたくさん試しました(目的は表示することです)フィールドにのみ値があります)。

<code>
{# Below codes in node.html.twig #}
{# Below codes NOT work #}
  {% if content.field_notes.0 is empty %}
    This field is empty-1.
  {% endif %}

  {% if content.field_notes[0] is empty %}
    This field is empty-2.
  {% endif %}

  {# Enable module:twig field value #}
  {% if content.field_notes|field_value is empty %}
    This field is empty-3.
  {% endif %}

  {% if node.field_notes.isempty %}
    This field is empty-4.
  {% endif %}

  {% if node.field_notes.value is empty %}
    This field is empty-5.
  {% endif %}
</code>

Drupal 8)のノードテンプレートで段落フィールドが空かどうかを確認するにはどうすればよいですか?

UPDATE:テスト済みのコードとその結果、段落では機能せず、他のいくつかのフィールドタイプでは機能する方法。

{% set count_field_element_1 = node.field_paragraphs|length %} {{ count_field_element_1 }} {# when field has or no value: count_field_element_1 = 2 #} {# paragraphs type contains two field type: image and text plain long #}

{% set count_field_element_2 = node.field_image|length %} {{ count_field_element_2 }} {# when field has value: count_field_element_2 = 1; #} {# when field has no value: count_field_element_2 = 0; #}

{% set count_field_element_3 = node.field_text_plain_long|length %} {{ count_field_element_3 }} {# when field has value: count_field_element_3 = 1; #} {# when field has no value: count_field_element_3 = 0; #}

多分私の質問はあまり明確ではないので、以下で詳しく説明します:この質問の目的は、(他のフィールドタイプではなく)段落フィールドに値があるかどうかを確認することです。フィールド値を入力して保存すると、ノードページにフィールドとその値が表示されます。フィールド値が入力および保存されていない場合、ノードページにはフィールド(div要素を含む)は表示されません。

{% set count_field_element = node.field_paragraphs|length %} {{ count_field_element }}

count_field_elementは以下の場合は1です:enter image description here

count_field_elementは以下の場合0です(ノードフォームの段落のすべてのフォームアイテムを削除します):enter image description here

つまり、今までのところ、段落フィールドに値があるかどうかを確認する方法はまだわかりません。ノードフォームで段落のすべてのフォームアイテムを削除する場合にのみ、ノードページに段落フィールドが空と表示されます。

2
Basic

node.field_notes 何かのようなもの


 {% set count_paragraph_element = node.field_notes | length %}
  {% if count_paragraph_element == 0 %}
      Empty
  {% else %}
      Not empty
  {% endif %}

更新
もしチェックしたいならtext plain longフィールドに空の値があります。これを試してください。
フィールドマシン名はfield_text


{% for item in node.field_notes %}
      {% if item.entity.field_text.value is empty %}
        text value is empty
      {% else %}
        text value not empty
      {% endif %}
{% endfor %}
2
berramou