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?


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:



77

Anda juga bisa menggunakan:

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

sehingga hanya <b>tag yang diizinkan.


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


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.