web-dev-qa-db-fra.com

Comment supprimer les espaces blancs sur le champ dans une brindille?

J'essaie d'imprimer la valeur du champ dans un nœud - template.html.twig sans espace blanc. Ce champ est une sélection dans la page d'administration.

Location|Location 
Achat|Achat

Voici comment ma valeur est imprimée:

{{content.field_type}}

enter image description here

field.html.twig:

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

J'essaie un argument twig comme

{{content.field_type | trim}}

Mais quand j'imprime comme ça, c'est vide.

Alors, où sont ces espaces? même si j'essaie de tester la valeur dans la condition if else:

Cela ne fonctionne pas à cause des espaces:

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

Ce travail :

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

Donc pour tester une valeur c'est ok, mais pour imprimer la valeur si j'utilise

{{content.field_type | render | trim}}

j'ai obtenu le même résultat avec un espace blanc.

Donc, si quelqu'un peut me dire où est ajouté cet espace et comment le supprimer dans un rameau. J'utilise le thème boostrap, mais je ne vois rien qui ajoute de l'espace.

9
Kevin

Il me semble que vous avez un modèle, probablement field.html.twig qui ajoute cet espace. Vous pouvez activer le débogage twig pour voir quels fichiers de modèles sont utilisés.

De plus, je pense qu'il vaut mieux tester la valeur sur node.field.value au lieu de content.field comme pour le rendu uniquement.

Notez que les opérateurs twig as {% for ... %} ajoutez également des espaces, vous devez donc ajouter - ainsi que par exemple:

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

J'ai essayé plusieurs fois et le tag sans espace fonctionne plutôt bien.

Utilisez la syntaxe suivante:

{% spaceless %}

  {{content.field_type}}

{% endspaceless %}
4
Vipin Mittal