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


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, но я не вижу ничего, что добавляет пробелы.


Вы пробовали использовать 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.