it-swarm.com.de

So drucken Sie Absätze in der Vorlage twig)

Ich habe einen Inhaltstyp, basic, in dem ich ein Absatzfeld (field_pr) hinzugefügt habe, das zwei Felder enthält: field_text, field_color. Ich habe ein twig Vorlagenknoten - basic - full.html.twig, wo ich den Wert des Absatzfeldes (node.field_pr) drucken möchte, weil es mehr als 1 Wert sein kann. Die Anzahl der Absätze, die hinzugefügt werden können, ist auf 10 begrenzt. Stellen Sie sich also node.field_pr mit bis zu 10 Werten vor.

Wenn ich das Array für content.field_pr drucke, bekomme ich ein riesiges Array, aber ich möchte nur die Werte aus field_pr.field_text und field_pr.field_color. Wie könnte ich dies vom Knoten aus tun twig Vorlage? Ich kann es nicht erledigen.

Ich habe Folgendes versucht, aber ich kann anscheinend nicht auf die Werte zugreifen. Was vermisse ich?

{% for field in content.field_pr %}
   {{ field[loop.index0].entity.field_text.value }}
   {{ field[loop.index0].entity.field_color.value }}
{% endfor %}

{% for field in content.field_pr %}
   {{ field[loop.index0]['#paragraph'].field_text.value }}
   {{ field[loop.index0]['#paragraph'].field_color.value }}
{% endfor %}

Hier ist ein Bild des Arrays, das für das Feld node.field_pr gedruckt wird. (enter image description here

6
usernameabc

Ich bin mir nicht sicher, ob dies mit Ihrem aktuellen Ansatz möglich ist. Hier ist, wie ich das angehen würde.

Führen Sie in Ihrer Knotenvorlagendatei einfach ein {{ content.field_pr }}

Erstellen Sie eine Vorlagendatei für Ihren Absatz.

absatz __ [Ansichtsmodus] (z. B. Absatz - default.html.twig)

absatz __ [Typ] (z. B. Absatz - image.html.twig)

absatz __ [Typ] __ [Ansichtsmodus] (z. B. Absatz - Bild - Standard.html.twig)

quelle: Theming in Absätzen für Drupal 8

In Absatz - [Typ] .html.twig machen Sie {{ content.field_text }} und {{ content.field_color }}

6
No Sssweat

Ich habe das herausgefunden. Wenn Twig Tweak aktiviert ist, können Sie Absätze aus dem Knotenobjekt drucken, ohne Inhalt zu verwenden:

{% for item in node.field_my_paragraph_field %}
     {{ drupal_entity('paragraph', item.target_id) }}
{% endfor %}
2
user33560

So drucken Sie Absatzfelder in einer Schleife (für Schieberegler usw.) in page--content-type.html.twig benutze das folgende Snippet:

{% for item in node.field_paragraph_mac_name %}
  {{ item.entity.field_title.value }}
  <img src="{{ file_url(item.entity.field_image.entity.fileuri) }}" />
{% endfor %}
2
Hashmat

Aufbauend auf der Antwort von user33560. Wenn Sie verschachtelte Absätze haben und die Absatzfelder der 2. Ebene aus der 1. Ebene paragraph.html.twig Drucken oder abrufen möchten:

{% set paragraph_name = content.field_paragraph_name %}

{% for item in paragraph_name['#items'] %}
    {{ drupal_entity('paragraph', item.target_id) }}
{% endfor %}

Sie können auch {{ content.field_paragraph_name }} Verwenden, um alle Absatzelemente zu drucken, oder eine Teilmenge wie {{ content.field_paragraph_name.field_example }} Drucken. Verwenden Sie {{ content.field_paragraph_name|without('field_example') }}, um das Drucken eines bestimmten untergeordneten Elements vorübergehend zu unterdrücken.

2
AdamB