it-swarm.com.de

So rendern Sie das Absatzmodul in twig

Ich erstelle eine benutzerdefinierte Vorlage für mein Thema und erstelle eine page.html.twig-Seite. Ich möchte die einzelnen Knotenfelder in separate Zeilen aufrufen. Ich konnte alles außer dem Absatzfeld erfolgreich anzeigen.

Ich habe versucht.

{{ node.field_benefits }}
{{ node.field_benefits.value }}
{{ paragraph.field_benefits }}
{{ paragraph.field_benefits.value }}
{{ node.paragraphs.field_benefits }}

Und nichts hat funktioniert. Hat jemand eine Idee von der richtigen Struktur, die im Absatzmodul aufgerufen werden soll?

Oder würde eine für Funktion funktionieren

{% if node.field_benefits %}
{% for field_items in node.field_benefits %}
{{ field_item.value }}
{% endfor %}
{% endif %}
8
Megan McGowan

Fügen Sie zuerst ein paragraph--your_paragraph_machine_name.html.twig Zum Vorlagenverzeichnis Ihres Themas hinzu.

Der Zugriff auf Ihre Absatzfelder erfolgt durch Hinzufügen von twig Variablen in einem ähnlichen Format wie {{ content.field_your_field }}.

Wenn Sie nur den Feldwert möchten, ist das etwas schwieriger. Wenn Sie beispielsweise ein Listenfeld (Textfeld) hatten und den Wert aus der ausgewählten Option abrufen möchten, können Sie Folgendes tun:

{% for item in content.field_select_list %}
  {% if item is iterable %}
    {% for key,value in item %}
      {% if not value is iterable %}
        {% if key == '#markup' %}
          {{ value }}
        {% endif %}
      {% endif %}
    {% endfor %}
  {% endif %}
{% endfor %}

Sie können jederzeit eine {{ dump(content) }} ausführen, um die Struktur anzuzeigen und die gewünschten Werte abzurufen. Hoffe das hilft!

EDIT : Sie können alle albernen verschachtelten Schleifen vermeiden. Das obige Beispiel sollte wie folgt geschrieben sein:

{% set value = content.field_select_list.0['#markup'] %}
{{ value }}

Für ein Textfeld (normal) könnte es ungefähr so ​​aussehen:

{{ content.field_text.0['#context'].value }}

Um einen URL-Wert aus einem Link-Feld zu erhalten, habe ich folgende Vorschläge gesehen:

{{ content.field_link['#items'].0.value.uri }}

Aber es hätte ein "internes: /" Präfix, also hatte ich mit so etwas mehr Glück:

{{ content.field_link.0['#title'] %}
7
jimafisk