動作環境
- Laravel 8.40.0
- PHP 8.0.3
- macOS 12.0.1
下記のような変数をbladeで表示しようとするとHTMLコードがエスケープされ文字列としてそのまま表示されてしまう。
$html = "<span style='background-color:yellow'>{$str}</span>"
{{ $html }}
//コードがエスケープされ文字列としてそのまま表示されてしまう。
//<span style='background-color:yellow'>hoge</span>
解決策
{!! $html !!}
{{ }} で囲んでしまうとHTMLコードはエスケープされコードがそのまま表示されてしまうため、HTMLをエスケープせずにblade側で出力させるには上記のようにする。