Je remplace le modèle de champs
vues-vues-champs - nom_machine.html.twig
Je veux rendre certains champs dans un div différent des autres champs. Je ne veux pas que les champs soient rendus deux fois.
<div class="foo">
{{ fields.field_events_date_start.content }}
{{ fields.field_events_date_start_1.content }}
</div>
{% for field in fields -%}
{{ field.separator }}
{%- if field.wrapper_element -%}
<{{ field.wrapper_element }}{{ field.wrapper_attributes }}>
{%- endif %}
{%- if field.label -%}
{%- if field.label_element -%}
<{{ field.label_element }}{{ field.label_attributes }}>{{ field.label }}{{ field.label_suffix }}</{{ field.label_element }}>
{%- else -%}
{{ field.label }}{{ field.label_suffix }}
{%- endif %}
{%- endif %}
{%- if field.element_type -%}
<{{ field.element_type }}{{ field.element_attributes }}>{{ field.content }}</{{ field.element_type }}>
{%- else -%}
{{ field.content }}
{%- endif %}
{%- if field.wrapper_element -%}
</{{ field.wrapper_element }}>
{%- endif %}
{%- endfor %}
Si j'exclus ces champs de l'affichage dans les vues, ils les masquent lorsqu'ils sont rendus avant et dans la zone de contenu normale.
{{ content|without('field_events_date_start,field_events_date_start_1') }}
... Ne fonctionne pas car je rend des champs, pas du contenu.
Comment obtenir le rendu des champs avant, mais être exclu plus tard?
Vous devez supprimer les deux champs de fields
.
<div class="foo">
{{ fields.field_events_date_start.content }}
{{ fields.field_events_date_start_1.content }}
</div>
{% for field in fields|without('field_events_date_start', field_events_date_start_1') %}
...
{% endfor %}
Voici un exemple de ce que j'ai fait la semaine dernière.
Nom de fichier views-view-fields--view_name--display_id.html.twig
C'est-à-dire views-view-fields--acquia-search--results.html.twig
Dans mon cas.
{{ fields.title.content }}
<p class="search-result__item-description">{{ fields.search_api_excerpt.content }}</p>
<ul class="search-result__item-meta">
<li class="search-result__item-link"><span class="label">View More:</span> {{ fields.url.content }}</li>
<li class="search-result__item-date"><span class="label">Date Modified:</span> {{ fields.changed.content }}</li>
</ul>
J'imprime les champs à ma discrétion et je fournis mon propre balisage.
Si vous installez Twig XDebug , vous pouvez déposer {{ breakpoint() }}
dans votre modèle et voir vos variables.