¿Cómo eliminar espacios en blanco en el campo en la ramita?


9

Intento imprimir el valor del campo en un nodo - template.html.twig sin espacios en blanco. Este campo es una selección en la página de administración.

Location|Location 
Achat|Achat

Así es como se imprime mi valor:

{{content.field_type}}

ingrese la descripción de la imagen aquí

field.html.twig:

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

Intento un argumento de ramita como

{{content.field_type | trim}}

Pero cuando imprimo así, está vacío.

Entonces, ¿dónde está este espacio en blanco? lo mismo si trato de probar el valor en la condición if else:

Esto no funciona debido al espacio en blanco:

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

Este trabajo :

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

Entonces, para probar un valor, está bien, pero para imprimir el valor si uso

{{content.field_type | render | trim}}

Obtuve el mismo resultado con espacios en blanco.

Entonces, si alguien puede decirme dónde está agregar este espacio en blanco y cómo eliminarlo en la ramita. Uso el tema boostrap, pero no veo nada que agregue espacios en blanco.


¿Has intentado usar spaceless? twig.sensiolabs.org/doc/2.x/tags/spaceless.html
Kevin

sí, mismo resultado
Kevin

1
Además, no desea hacer verificaciones en la matriz de renderizado, hágalo en el campo mismo a través denode.field_type.value == 'Achat'
Kevin

De acuerdo para la prueba, pero para la impresión? ¿Por qué espacios en blanco?
Kevin

@Kevin sobre su comentario, por favor: ¿podría desarrollar un poco por qué / al verificar el objeto de entidad sobre la matriz de representación de contenido? por ejemplo, profile.some_field vs content.some_field? mi plantilla dice en los comentarios: use 'contenido' para imprimirlos todos, o imprima un subconjunto como 'content.title'. Tks :)
Kojo

Respuestas:


5

Me parece que tienes una plantilla, probablemente field.html.twigeso es agregar este espacio. Puede habilitar la twigdepuración para ver qué archivos de plantillas se utilizan.

Además, creo que es mejor probar el valor en node.field.valuelugar de content.fieldhacerlo solo para el renderizado.

Tenga en cuenta que los operadores de ramita {% for ... %}también agregan espacios, por lo que también debe agregar -allí, por ejemplo:

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

El uso de la plantilla es field.html.twig, solo agrego - en {% - para, pero es lo mismo, espacios en blanco siempre aquí ... Estoy de acuerdo en probar el valor para usar node.field.value.
Kevin

¿Qué está haciendo este guión? ¿Y por qué no es este comportamiento predeterminado?
leymannx

1
Ah! Modificador de control de espacios en blanco . Gosh es así de feo. Esto realmente debería ser un defecto global.
leymannx

4

Lo intenté muchas veces y la etiqueta sin espacio funciona bastante bien.

Use la siguiente sintaxis:

{% spaceless %}

  {{content.field_type}}

{% endspaceless %}

3
Todavía tengo espacios en blanco
Kevin

Yo también estaba completamente decepcionado.
Randell

Lo suficientemente interesante, esto funcionó para mí para un proyecto separado.
Randell

tal vez no borraste el caché de drupal?
Robbiegod
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.