【Laravel】Bladeのタグについて




自動エスケープしてデータを表示

{{ 変数 }}とするとhtmlspecialchars関数でエスケープ処理を行ったデータが表示されます。

@php
$var = 'I am var';
@endphp
{{ $var }}
// I am varが出力される

エスケープしないでデータを表示

{!! 変数 !!}とすると、エスケープ処理なしでデータが表示されます。

@php
$var = '';
@endphp
{{ $var }}
// ブラウザ上に「<script>window.alert('I am var');</script>」が出力される

{!! $var !!}
// ダイアログでI am varが出力される

{{や}}をそのまま表示したい

{{や}}は多くのJavaScriptフレームワークでへデータ表示に使われるので、{{や}}はそのまま文字として出力したい場合があります。
この場合、@{{ 変数 }}とすることで{{ 変数 }}という文字列として表示することができます。

@{{ var }}
// {{ var }}が出力される

{や}が頻出する部分には@verbatimディレクティブで囲むことでその間は@{{ 変数 }}とせず、{{ 変数 }}で表示することができます。

@verbatim
<div class="test">
  I am {{ name }}.
  I am {{ num }} years old.
</div>
@endverbatim
// I am {{ name }}.
// I am {{ num }} years old.

コメントアウト

{{– コメント –}}でコメントになります。
Bladeのコメントはコンパイル時に読み飛ばされるのでHTMLとしても出力されません。

{{– この部分はコメント!出力されるHTMLにも出力されない。 –}}