Wie entferne ich Leerzeichen auf dem Feld im Zweig?

9

Ich versuche, den Feldwert in einem Knoten - template.html.twig ohne Leerzeichen zu drucken. Dieses Feld ist eine Auswahl in der Administrationsseite.

Location|Location 
Achat|Achat

So ist mein Wert gedruckt:

{{content.field_type}}

Geben Sie hier die Bildbeschreibung ein

field.html.twig:

{% for item in items %}
{{- item.content -}}
{%  endfor %}

Ich versuche ein Zweigargument wie

{{content.field_type | trim}}

Aber wenn ich so drucke, ist es leer.

Wo sind diese Leerzeichen? das gleiche, wenn ich versuche, den Wert in if else Bedingung zu testen:

Dies funktioniert aufgrund von Leerzeichen nicht:

{% if content.field_type == "Achat"%}

Diese Arbeit :

{% if content.field_type | render | trim == "Achat"%}

Also zum Testen eines Wertes ist es in Ordnung, aber zum Drucken des Wertes, wenn ich benutze

{{content.field_type | render | trim}}

Ich habe das gleiche Ergebnis mit Leerzeichen.

Also, wenn mir jemand sagen kann, wo dieses Leerzeichen hinzugefügt wird und wie dieses im Zweig entfernt wird. Ich benutze das Boostrap-Thema, aber ich sehe nichts, was Leerzeichen hinzufügt.

Kevin
quelle
Haben Sie versucht , mit spaceless? twig.sensiolabs.org/doc/2.x/tags/spaceless.html
Kevin
Ja, das gleiche Ergebnis
Kevin
1
Außerdem möchten Sie das Render-Array nicht überprüfen, sondern auf dem Feld selbst übernode.field_type.value == 'Achat'
Kevin
Stimmen Sie dem Test zu, aber dem Druck? Warum Leerzeichen?
Kevin
@ Kevin über Ihren Kommentar bitte: Könnten Sie ein bisschen entwickeln, warum / wenn Sie das Entitätsobjekt über dem Content-Rendering-Array überprüfen? zB profile.some_field vs content.some_field? In meiner Vorlage heißt es in Kommentaren: Verwenden Sie "Inhalt", um alle zu drucken, oder drucken Sie eine Teilmenge wie "content.title". Tks :)
Kojo

Antworten:

5

Es klingt für mich so, als hätten Sie eine Vorlage, die wahrscheinlich field.html.twigdiesen Platz hinzufügt. Sie können das twigDebuggen aktivieren, um zu sehen, welche Vorlagendateien verwendet werden.

Außerdem glaube ich , es ist besser, den Wert auf zu prüfen , node.field.valuestatt , content.fieldda es nur für die Wiedergabe fertig ist.

Beachten Sie, dass die Zweigoperatoren {% for ... %}auch Leerzeichen hinzufügen, daher sollten Sie dort auch Folgendes hinzufügen, -z.

{%- for item in items %}
{{ item.content }}
{%  endfor -%}
yvan
quelle
Die Vorlage verwendet field.html.twig, ich füge nur - in {% - für hinzu, aber es ist das gleiche, Leerzeichen immer hier ... Ich bin damit einverstanden, den Wert zu testen, um node.field.value zu verwenden.
Kevin
Was macht dieser Bindestrich? Und warum ist dieses Standardverhalten nicht?
Leymannx
1
Ah! Whitespace Control Modifier . Meine Güte, ist das hässlich. Dies sollte wirklich ein globaler Standard sein.
Leymannx
4

Ich habe es viele Male versucht und das raumlose Tag funktioniert ziemlich gut.

Verwenden Sie die folgende Syntax:

{% spaceless %}

  {{content.field_type}}

{% endspaceless %}
Vipin Mittal
quelle
3
Ich habe immer noch Leerzeichen
Kevin
Auch ich war sehr enttäuscht.
Randell
Interessanterweise funktionierte dies für mich für ein separates Projekt.
Randell
Vielleicht haben Sie den Drupal-Cache nicht geleert?
Robbiegod