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}}
field.html.twig:
{% for item in items %}
{{- item.content -}}
{% endfor %}
J'essaie un argument de brindille 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 une brindille. J'utilise le thème boostrap, mais je ne vois rien qui ajoute des espaces.
spaceless
? twig.sensiolabs.org/doc/2.x/tags/spaceless.htmlnode.field_type.value == 'Achat'
Réponses:
Il me semble que vous avez un modèle,
field.html.twig
qui ajoute probablement cet espace. Vous pouvez activer letwig
débogage pour voir quels fichiers de modèles sont utilisés.De plus, je pense qu'il vaut mieux tester la valeur au
node.field.value
lieu decontent.field
comme cela est fait pour le rendu uniquement.Notez que les opérateurs de brindilles
{% for ... %}
ajoutent également des espaces, vous devriez donc également y ajouter-
pour par exemple:la source
J'ai essayé plusieurs fois et le tag sans espace fonctionne plutôt bien.
Utilisez la syntaxe suivante:
la source