Come rimuovere gli spazi bianchi sul campo in un ramoscello?


9

Provo a stampare il valore del campo in un nodo - template.html.twig senza spazi bianchi. Questo campo è una selezione nella pagina di amministrazione.

Location|Location 
Achat|Achat

Ecco come è stampato il mio valore:

{{content.field_type}}

inserisci qui la descrizione dell'immagine

field.html.twig:

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

Provo qualche argomento ramoscello come

{{Content.field_type | assetto}}

Ma quando stampo così, è vuoto.

Quindi dove sono questi spazi bianchi? lo stesso se provo a testare il valore in if else condition:

Questo non funziona a causa degli spazi bianchi:

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

Questo lavoro :

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

Quindi per testare un valore è ok, ma per stampare il valore se lo uso

{{Content.field_type | renda | assetto}}

ho ottenuto lo stesso risultato con gli spazi bianchi.

Quindi, se qualcuno può dirmi dove si trova questo spazio bianco e come rimuoverlo in un ramoscello. Uso il tema boostrap, ma non vedo nulla che aggiunga spazi bianchi.


Hai provato a usare spaceless? twig.sensiolabs.org/doc/2.x/tags/spaceless.html
Kevin

sì, stesso risultato
Kevin

1
Inoltre non vuoi fare controlli sull'array di rendering, fallo sul campo stesso tramitenode.field_type.value == 'Achat'
Kevin

Accetto il test, ma per la stampa? perché spazi bianchi?
Kevin

@Kevin sul tuo commento per favore: potresti sviluppare un po 'perché / quando si controlla l'oggetto entità sopra l'array di rendering del contenuto? ad es. profile.some_field vs content.some_field? il mio modello dice nei commenti: usa 'content' per stamparli tutti o stampare un sottoinsieme come 'content.title'. Tks :)
Kojo

Risposte:


5

Mi sembra che tu abbia un modello, probabilmente field.html.twigsta aggiungendo questo spazio. È possibile abilitare il twigdebug per vedere quali file dei modelli vengono utilizzati.

Inoltre, penso che sia meglio testare il valore node.field.valueinvece che content.fieldcome solo per il rendering.

Nota che anche gli operatori del ramoscello {% for ... %}aggiungono spazi, quindi dovresti aggiungere -anche lì per es:

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

L'utilizzo del modello è field.html.twig, ho appena aggiunto - in {% - per, ma è lo stesso, lo spazio bianco è sempre qui ... Sono d'accordo per testare il valore per usare node.field.value.
Kevin,

Cosa sta facendo questo trattino? E perché questo comportamento predefinito non è?
leymannx,

1
Ah! Modificatore di controllo degli spazi bianchi . Accidenti è così brutto. Questo dovrebbe davvero essere un default globale.
leymannx,

4

Ho provato molte volte e il tag spaceless funziona abbastanza bene.

Utilizzare la sintassi seguente:

{% spaceless %}

  {{content.field_type}}

{% endspaceless %}

3
ho ancora degli spazi bianchi
Kevin,

Anch'io ero completamente deluso.
Randell,

Abbastanza interessante, questo ha funzionato per me per un progetto separato.
Randell,

forse non hai cancellato la cache di Drupal?
Robbiegod,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.