web-dev-qa-db-fra.com

Comment imprimer des champs d'affichage sur Twig?

J'ai une vue et j'ai ajouté le titre en tant que champ.

Par exemple: comment imprimer le titre?

En Drupal 7 c'était aussi simple que

vues-champs-vues - [nom_vue] .tpl.php

<?php print $fields["title"]->content; ?>

Comment faisons-nous cela dans Drupal 8?

J'ai créé views-view-fields - [viewname] .html.twig

J'ai pensé que ça pourrait être {{ fields.title }} mais j'obtiens le message d'erreur classique comme ceci:

Le site Web a rencontré une erreur inattendue. Veuillez réessayer plus tard.

J'ai ensuite essayé {{ field.title }}, {{ title }} et {{ content.title }} mais rien ne s'imprime.

6
No Sssweat

Après avoir dîné, lavé la vaisselle, joué avec et lu les commentaires dans views-view-fields.html.twig situé dans core\modules\views\templates

/**
 * @file
 * Theme override to display all the fields in a row.
 *
 * Available variables:
 * - view: The view in use.
 * - fields: A list of fields, each one contains:
 *   - content: The output of the field.
 *   - raw: The raw data for the field, if it exists. This is NOT output safe.
 *   - class: The safe class ID to use.
 *   - handler: The Views field handler controlling this field.
 *   - inline: Whether or not the field should be inline.
 *   - wrapper_element: An HTML element for a wrapper.
 *   - wrapper_attributes: List of attributes for wrapper element.
 *   - separator: An optional separator that may appear before a field.
 *   - label: The field's label text.
 *   - label_element: An HTML element for a label wrapper.
 *   - label_attributes: List of attributes for label wrapper.
 *   - label_suffix: Colon after the label.
 *   - element_type: An HTML element for the field content.
 *   - element_attributes: List of attributes for HTML element for field content.
 *   - has_label_colon: A boolean indicating whether to display a colon after
 *     the label.
 *   - element_type: An HTML element for the field content.
 *   - element_attributes: List of attributes for HTML element for field content.
 * - row: The raw result from the query, with all data it fetched.
 *
 * @see template_preprocess_views_view_fields()
 */

{{ fields.title.content }} a fonctionné pour moi. Avec le recul, il est très similaire au code D7 , duh, lol.

Pour les autres domaines:

{{ fields.machine_name.content }} Quel est le nom de la machine? Vous pouvez les trouver sous colonne Nom de la machine dans les champs de gestion de votre type ou bloc de contenu.

11
No Sssweat

J'ai trouvé un moyen d'utiliser kint.

Dans votre views-view-unformatted.html.twig, utilisez le code suivant pour afficher vos champs individuels:

{% for row in rows %}

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

{% endfor %}
1
Ibrahim Samir