Як отримати значення неочищеного поля у шаблоні гілочок?


27

myfield - звичайне текстове поле. {{ content.field_myfield }}відображає поле з розміткою HTML та міткою поля.

Яким чином я можу відображати необроблене значення поля? {{ content.field_myfield.value }}не працює.

Відповіді:


45

{{ entity.field_name.value }} щоб отримати справжнє необроблене значення, включає теги та кодування.

  • Приклад: {{ node.body.value }}
  • результат: <p>Batman &amp; Robin</p>

{{ content.field_name.0 }} щоб отримати вихідне значення мінус теги та кодування.

  • Приклад: {{ content.body.0 }}
  • результат: Batman & Robin

сирий

Цей фільтр слід уникати, коли це можливо, особливо якщо ви виводите дані, які можуть бути введені користувачем. Дивіться цю сторінку для отримання додаткової інформації щодо автоматичного втечі в Drupal 8.

джерело: Фільтри - Модифікація змінних у шаблонах Twig

Неочищений фільтр позначає значення як "безпечне", а це означає, що в середовищі з включеним автоматичним перемиканням цієї змінної не буде уникнути, якщо сировина є останнім застосованим до неї фільтром

джерело: Офіційні документи Twig


Наприклад, ви можете використовувати:

{{ node.body.value|striptags }}
{{ paragraph.field_text.value|striptags }}

Проблема з використанням | стриптигів twig - це подвійне кодування html-сутностей, а не розмітка, тому & стає &, а потім & amp; - Бердір


6
приклади вмісту невірні. Дивіться drupal.stackexchange.com/questions/198694/… . Ви можете використовувати content.field_text.0, тоді ви отримуєте лише внутрішню частину першого елемента поля, без шаблонів полів. Це особливо корисно для списків, посилань і так далі, де ви хочете відформатований вихід, а не вихідне значення
Berdir

2
Краще, але все ж не зовсім коректно. content.field_myfield | striptags не працює, ви не можете передавати масив візуалізації для цього. Вам потрібно спочатку видати його, а потім пройти через це. у стриптагів і так далі також є проблеми з & та іншими символами, які можуть кодуватися двічі, тому вам часто потрібні | стриптиги | сировини.
Бердір

2
Просто | сировина залишає html-теги та друкує їх. Проблема з | striptags полягає у подвійному кодуванні html-об'єктів, а не розмітці, так що & & amp; а потім & amp;
Бердір

2
Це не подвійне уникнення, ви можете бачити це <і >відображатися правильно. Амперсанд, ймовірно, вже одразу втік, перш ніж вивести його. Але питання стосується простого текстового поля , а не відформатованого текстового поля, обробленого текстовими фільтрами. (Щоб відповісти на це не задане питання, необроблене значення (якщо хтось дійсно хоче цього) все одно буде знаходитись у .valueньому, і це було б неправильно уникнути Twig з міркувань безпеки, тому що ви ніколи не повинні виводити відформатоване текстове поле нефільтроване)
4k4

2
Так, це я мав на увазі (автоматичний втечу = одиночний втечу). Тож ваші приклади для виведення значень полів сутності є ідеальними, лише без фільтра стриптизу, оскільки це призведе до некрасивого подвійного виходу. (BTW &amp;вихід у вашому прикладі невірний; це не відбувається в автоматичному націленні, якщо вміст поля вже не одноразово вийшов).
4k4

5

У цьому випадку ви можете використовувати модуль Twig Field Value . Після установки цього модуля ви отримаєте доступ до часткових даних з масивів польових візуалізацій. Для екс.

{{ content.field_name|field_value }}
content.field_image|field_target_entity.uri.value

Детальніше про сторінку проектів


1
{{ content.body | raw }} 

отримайте значення необробленого поля у шаблоні гілочок

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.