Bagaimana cara menampilkan string yang berisi HTML dalam templat ranting?

164

Bagaimana saya bisa menampilkan string yang berisi tag HTML di templat ranting?

Variabel PHP saya berisi html dan teks ini:

$word = '<b> a word </b>';

Ketika saya melakukan ini di templat ranting saya:

{{ word }}

Saya mendapatkan ini:

&lt;b&gt; a word &lt;b&gt;

Saya menginginkan ini sebagai gantinya:

<b> a word </b>

Apakah mungkin untuk mendapatkan ini dengan mudah?

Gildas Ross
sumber
Saya tidak akan menambahkan ini sebagai jawaban, tetapi pendekatan alternatif bagi orang yang mencapai pertanyaan ini adalah menyimpan nilai dalam Markdown , seperti yang dilakukan StackOverflow . Kemudian Anda dapat membuat filter Ranting dengan pelolosan otomatis , karena Anda dapat mempercayai HTML itu aman. Tidak rawdiperlukan, dan nilai yang disimpan dapat dibaca oleh manusia!
rybo111

Jawaban:

368

Gunakan kata kunci mentah, http://twig.sensiolabs.org/doc/api.html#escaper-extension

{{ word | raw }}
Aurimas Ličkus
sumber
1
Ketika melakukan penggantian itu tidak bekerja untuk saya. {{word | ganti ({(word_to_replace): '<b>' ~ (word_to_replace) ~ '</b>'}) | raw}} Ada ide?
Honesta
2
UPDATE: Saya menyelesaikannya dengan menambahkannya ke variabel lain menggunakan 'set', lalu {{word | raw}} berfungsi dengan baik.
Honesta
77

Anda juga bisa menggunakan:

{{ word|striptags('<b>')|raw }}

sehingga hanya <b>tag yang diizinkan.

Shimon S
sumber
6
Saya akan mengatakan versi ini lebih disukai jika Anda hanya ingin mengizinkan beberapa tag.
KalenGi
3
Apa yang membuat saya tersandung adalah perlu menempatkan "mentah" terakhir - saya akan meletakkannya terlebih dahulu.
Ben Y
Bagaimana Anda mengizinkan beberapa tag?
Riki137
32
{{ word|striptags('<b>,<a>,<pre>')|raw }}

jika Anda ingin mengizinkan beberapa tag

musicjerm
sumber
0

jika Anda tidak memerlukan variabel, Anda dapat mendefinisikan teks dalam
terjemahan / messages.en.yaml :
CiteExampleHtmlCode: "<b> my static text </b>"

kemudian gunakan dengan twig:
templates / about / index.html.twig
… {{ 'CiteExampleHtmlCode' }}
atau jika Anda membutuhkan multilangage seperti saya:
… {{ 'CiteExampleHtmlCode' | trans }}

Mari kita lihat https://symfony.com/doc/current/translation.html untuk informasi lebih lanjut tentang penggunaan terjemahan.

bcag2
sumber