Как убрать пробелы на поле в веточку?

9

Я пытаюсь напечатать значение поля в узле - template.html.twig без пробелов. Это поле является выбором на странице администратора.

Location|Location 
Achat|Achat

Вот как моя ценность печати:

{{content.field_type}}

введите описание изображения здесь

field.html.twig:

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

Я пытаюсь аргументировать

{{Content.field_type | облицовка}}

Но когда я печатаю так, это пусто.

Так где же этот пробел? То же самое, если я пытаюсь проверить значение в условии if else:

Это не работает из-за пробелов:

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

Эта работа :

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

Так что для проверки значения это нормально, но для печати значения, если я использую

{{Content.field_type | визуализация | облицовка}}

я получил тот же результат с пробелами.

Так что, если кто-то может сказать мне, где добавить этот пробел и как удалить его в веточку. Я использую тему Boostrap, но я не вижу ничего, что добавляет пробелы.

Kevin
источник
Вы пробовали использовать spaceless? twig.sensiolabs.org/doc/2.x/tags/spaceless.html
Кевин,
да, тот же результат
Кевин
1
Также вы не хотите делать проверки на массиве рендеринга, делайте это на самом поле черезnode.field_type.value == 'Achat'
Kevin
Согласитесь на тест, но на печать? почему пробелы?
Кевин
@Kevin по поводу вашего комментария, пожалуйста: не могли бы вы немного рассказать, почему / при проверке объекта-сущности над массивом рендеринга контента? например, профиль.some_field против содержимого.some_field? мой шаблон говорит в комментариях: используйте «content», чтобы напечатать их все, или распечатайте подмножество, например «content.title». Tks :)
Коджо

Ответы:

5

Мне кажется, что у вас есть шаблон, возможно, field.html.twigкоторый добавляет это пространство. Вы можете включить twigотладку, чтобы увидеть, какие файлы шаблонов используются.

Кроме того, я думаю, что лучше проверять значение, node.field.valueа не content.fieldкак это делается только для рендеринга.

Обратите внимание, что операторы ветки {% for ... %}также добавляют пробелы, поэтому вы должны добавить -туда, например:

{%- for item in items %}
{{ item.content }}
{%  endfor -%}
Айван
источник
В качестве шаблона используется field.html.twig, я просто добавляю {% - для, но это то же самое, пробел здесь всегда ... Я согласен проверить значение для использования node.field.value.
Кевин
Что делает этот дефис? И почему это не поведение по умолчанию?
leymannx
1
Ах! Модификатор управления пробельными символами . Черт возьми, это безобразно Это действительно должно быть глобальное значение по умолчанию.
leymannx
4

Я пробовал много раз, и без пробелов тег работает очень хорошо.

Используйте следующий синтаксис:

{% spaceless %}

  {{content.field_type}}

{% endspaceless %}
Випин Миттал
источник
3
я все еще получил пробел
Кевин
Я тоже был полностью разочарован.
Рэнделл
Интересно, это сработало для меня для отдельного проекта.
Рэнделл
может ты не очистил тайник друпалов?
Robbiegod