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.


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 -%}

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 %}

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.