用語集 最終更新 2026.08.08

Blade

Blade は、Laravel で画面テンプレートを組み立てるためのテンプレートエンジンです。 HTML の中に条件分岐やループ、レイアウト継承を書けるようにして、画面を整理しやすくします。

まず押さえたいポイント

  • 一覧・詳細・フォームのような、サーバー側で組み立てるページで中心になる
  • @extends@section によるレイアウト継承で、共通部分をまとめられる
  • {{ }} は自動でHTMLエスケープされる

セキュリティで唯一気をつける記法

Blade の {{ $value }} は自動エスケープされるため、通常はそのまま書けば XSS になりません。危険なのは、エスケープを外す {!! $value !!} の方です。 Markdown 本文をHTMLに変換して表示する、といった理由でこれを使う場面はありますが、ユーザーが入力した値をそのまま {!! !!} に流すのは事故そのものです。使うなら、HTMLを組み立てる側で許可タグを絞ってから渡します。

ループの中でDBを触らない

Blade の中で関連データを参照すると、テンプレート側から Eloquent のクエリが1件ずつ飛びます。画面のコードだけ見ても気づきにくいため、N+1 の温床になりやすい場所です。取得はコントローラ側でまとめ、Blade は表示に徹する形が安全です。

本番で見落としやすい運用の罠

Blade は毎回コンパイルされるのではなく、コンパイル済みのビューがキャッシュされます。本番で php artisan view:cache を使っている場合、テンプレートを更新してもキャッシュを作り直すまで表示は変わりません。「デプロイしたのに画面が古いまま」の原因はたいていこれです。当サイトでも Blade を触ったデプロイでは必ず view:cache を打ち直しています。

実務で見るポイント

  • 管理画面や業務画面のようなサーバーレンダリングと相性がよい
  • フロントを完全分離する構成では役割が薄くなる。判断は案件規模と体制で決める
  • Laravel 全体の向き不向きはLaravelとは?を参照