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.