it-swarm.com.de

Wie erhalte ich jeden Feldwert in views-views-unformated - view-machine-name.html.twig?

Ich habe eine twig Datei: Ansichten-Ansicht-unformatiert - Ansicht-Maschinenname.html.twig

{#
/**
 * @file
 * Default theme implementation to display a view of unformatted rows.
 *
 * Available variables:
 * - title: The title of this group of rows. May be empty.
 * - rows: A list of the view's row items.
 *   - attributes: The row's HTML attributes.
 *   - content: The row's content.
 * - view: The view object.
 * - default_row_class: A flag indicating whether default classes should be
 *   used on rows.
 *
 * @see template_preprocess_views_view_unformatted()
 *
 * @ingroup themeable
 */
#}
{% if title %}
  <h3>{{ title }}</h3>
{% endif %}
{% for row in rows %}
  {%
    set row_classes = [
      default_row_class ? 'views-row',
    ]
  %}
  <div{{ row.attributes.addClass(row_classes) }}>
    {{ row.content }}
  </div>
{% endfor %}

Ich möchte, dass Title und bodyFeld in einer durch Komma getrennten Zeile stehen, wie:

Titel, Körper

Wie kann ich beim Debuggen den Wert von 'title' oder 'body' oder einem anderen Feld in dieser Ansicht erhalten?

Ich habe kint (Titel) und kint (Körper) verwendet, aber es funktioniert nicht. Ich habe auch debug = TRUE; in der Servicedatei.

Aber ich kann nicht herausfinden, wie Felder in unformatierten HTML-Zweigen einen Wert haben.

19
Sugandh Khanna

Wie Sie in views-view-unformatted.html.twig sehen können, steht dort, was auch der von Ihnen gezeigte kommentierte Code sagt, es gibt keine Feldvariable. Daher wird diese Vorlage nicht für Felder verwendet.

Verfügbare Variablen:

  • title: Der Titel dieser Zeilengruppe. Kann leer sein.
  • zeilen: Eine Liste der Zeilenelemente der Ansicht.
    • attribute: Die HTML-Attribute der Zeile.
    • inhalt: Der Inhalt der Zeile.
  • ansicht: Das Ansichtsobjekt.
  • default_row_class: Ein Flag, das angibt, ob Standardklassen für Zeilen verwendet werden sollen.

Wenn Sie Felder in einer Ansichtsvorlage verwenden möchten, verwenden Sie Ansichtsansichtsfelder - [Ansichtsname] -- [Maschinenname] . Html. Zweig . Dort können Sie Ihre Felder folgendermaßen drucken:

<span>{{ fields.title.content }},</span><span>{{ fields.body.content }}</span>
20
No Sssweat

Ich habe einen Weg mit Kint gefunden. Sie können Feldwerte in der Ansichtsansicht abrufen - unformatiert.html.twig

wenn Sie ein bestimmtes Feld möchten

Um den Wert von Textfeldern zu erhalten

{{row.content['#row']._entity.field machine name[0].value}}

So erhalten Sie Bildfelder src

{{file_url(row.content['#row']._entity.field machine name.entity.uri.value)}}

Um Bild alt, Titel, Breite, Höhe zu erhalten

{{row.content['#row']._entity.field machine name[0].alt/title/width/height}}

Hinweis: Ersetzen Sie den Feldmaschinennamen durch Ihren Feldmaschinennamen

Wenn Sie mehrere Felder durchlaufen möchten

{% for i in range(0, 10) %}
  {{ row.content['#row']._entity.body[i].value }}
{% endfor %}

Wenn Sie einen Rohwert wünschen

{% for i in range(0, 10) %}
  {{ row.content['#row']._entity.body[i].value|raw }}
{% endfor %}
13
Sathish Sundar

Ich habe einen Weg mit Kint gefunden.

Verwenden Sie in Ihren Ansichten-Ansicht-unformatiert.html.twig den folgenden Code, um Ihre einzelnen Felder anzuzeigen:

{% for row in rows %}

{{ row.content['#view'].style_plugin.render_tokens[ loop.index0 ]['{{ YOUR_FIELD_NAME }}'] }}

{% endfor %}
7
Ibrahim Samir

Unten finden Sie den Beispielcode für den Zugriff auf Feldwerte in der Datei views-view-unformatted.html.twig.

{% for row in rows %}
  {% set photo = file_url(row['content']['#row']._entity.field_page_photo.entity.fileuri) %}          
  <li><img src={{ photo }} class="img-responsive img-circle"></li>
{% endfor %}
4
Renuka Kulkarni

Sie müssen drei Dateien erstellen, um die Ansichten mit twig files) zu überschreiben.
1. Ansichten-Ansicht - foobar.html.twig
2. Ansichten-Ansicht-unformatiert - foobar.html.twig
3. Ansichten-Ansicht-Felder - foobar.html.twig

Der Zweck aller drei Dateien wird nachfolgend beschrieben:
1: Standard-Theme-Implementierung für die Hauptansichtsvorlage.
2: Standard-Theme-Implementierung zum Anzeigen einer Ansicht unformatierter Zeilen.
3: Standardansichtsvorlage zum Anzeigen aller Felder in einer Reihe.

Sie sollten "views-view-fields - foobar.html.twig" verwenden, um jedes Ihrer Felder in Ansichten auszugeben.

Unten ist ein Beispiel:

<li>
<p>{{ fields.title.content }}</p> // Title field
<p>{{ fields.body.content }}</p> // Body field
<span>{{ fields.created.content }}</span> // Node authored date field
<a href="{{ fields.path.content }}" class="readmore"> read more </a> // Link to actual page
</li>
3
Pranay Agarwal

Nach meiner Erfahrung gibt es keine einfache Möglichkeit, twig in views-views-unformated - view-.html.twig einen Wert aus Feldern zu ermitteln, die nicht Teil der Entitätsstruktur sind.

Sehr, um ein text (plain) Feld zu drucken. So schmerzhaft, ein flag_field, entity_reference und so weiter.

Um dies zu erreichen, ohne den gesamten Kerncode der Ansicht durchzugehen, musste ich diesen Hack erstellen:

  1. fügen Sie eine gefälschte Entität für Klartextfelder hinzu
  2. hängen Sie den Ansichtsfeldwert in ein benutzerdefiniertes Modul ein:
  3. zweig (endlich) den gewünschten Wert in der Vorlage

Weitere Details hier https://drupal.stackexchange.com/a/288316/1376

0
augusto