Cara Menampilkan HTML pada Template Blade Laravel

Catatan ini khusus untuk menuliskan mengenai cara menampilkan HTML pada template blade laravel agar tidak diubah menjadi raw string. Misal teks yang harusnya dicetak tebal malah ditampilkan aslinya alias tidak dirender. Contoh yang ditampilkan: <b>tebal</b> padahal yang ingin ditampilkan adalah tebal.

Pada template blade, jika kita menampilkan string dari php secara umum akan menggunakan {{ $string }}. Tanda ini oleh blade template akan dicompile menjadi <?php echo e($string) ?>. Fungsi e yang digunakan setelah echo tersebut akan melalukan sanitasi string sebelum ditampilkan ke browser. Secara singkat, fungsi e tersebut sama seperti fungsi htmlentities pada php.

Sehingga, jika kita menggunakan {{}} untuk menampikan string html maka string tersebut akan ditampilkan apa adanya. Alias tidak dirender sebagai html.

Lalu bagaimana cara memampilkal HTML pada template blade?

Caranya adalah dengan menggunakan tanda {!! $string !!}. Tanda itu akan dicompile oleh template blade menjadi <?php echo $test ?>. Tidak ada fungsi tambahan setelah echo. Sehingga html bisa dirender oleh browser.

Komentar