Como remover espaços em branco no campo em galho?

9

Eu tento imprimir o valor do campo em um nó - template.html.twig sem espaço em branco. Este campo é uma seleção na página de administração.

Location|Location 
Achat|Achat

É assim que meu valor é impresso:

{{content.field_type}}

insira a descrição da imagem aqui

field.html.twig:

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

Eu tento algum argumento galho como

{{content.field_type | trim}}

Mas quando imprimo assim, está vazio.

Então, onde está esse espaço em branco? mesmo se eu tentar testar o valor na condição if else:

Isso não funciona devido ao espaço em branco:

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

Este trabalho :

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

Então, para testar um valor, tudo bem, mas para imprimir o valor, se eu usar

{{content.field_type | render | trim}}

Eu tenho o mesmo resultado com espaço em branco.

Então, se alguém puder me dizer onde é adicionar esse espaço em branco e como remover isso no galho. Eu uso o tema boostrap, mas não vejo nada que adicione espaço em branco.

Kevin
fonte
Você já tentou usar spaceless? twig.sensiolabs.org/doc/2.x/tags/spaceless.html
Kevin
sim, mesmo resultado
Kevin
11
Além disso, você não quer fazer verificações sobre a matriz render, fazê-lo no próprio campo de vianode.field_type.value == 'Achat'
Kevin
Concorda com o teste, mas com a impressão? por que espaço em branco?
Kevin
@ Kevin sobre seu comentário, por favor: você poderia desenvolver um pouco por que / ao verificar o objeto de entidade sobre o array de renderização de conteúdo? por exemplo profile.some_field vs content.some_field? meu modelo diz nos comentários: Use 'content' para imprimir todos, ou imprima um subconjunto como 'content.title'. Tks :) #
287 Kojo

Respostas:

5

Parece-me que você tem um modelo, provavelmente field.html.twigque está adicionando esse espaço. Você pode habilitar a twigdepuração para ver quais arquivos de modelos são usados.

Além disso, acho melhor testar o valor em node.field.valuevez de content.fieldfazê-lo apenas para a renderização.

Observe que os operadores twig {% for ... %}também adicionam espaços, então você deve adicionar -também lá, por exemplo:

{%- for item in items %}
{{ item.content }}
{%  endfor -%}
yvan
fonte
O uso do modelo é field.html.twig, apenas adiciono - em {% - para, mas é o mesmo espaço em branco sempre aqui ... concordo em testar o valor para usar node.field.value.
22417 Kevin
O que esse hífen está fazendo? E por que esse comportamento não é padrão?
Leymannx #
11
Ah! Modificador de controle de espaço em branco . Puxa, isso é feio. Isso realmente deve ser um padrão global.
Leymannx
4

Eu tentei muitas vezes e a etiqueta sem espaço funciona muito bem.

Use a seguinte sintaxe:

{% spaceless %}

  {{content.field_type}}

{% endspaceless %}
Vipin Mittal
fonte
3
eu ainda tenho espaço em branco
Kevin
Eu também fiquei completamente decepcionado.
Randell 06/07
Interessante o suficiente, isso funcionou para mim em um projeto separado.
Randell
talvez você não tenha limpado o cache do drupal?
Robbiegod