Bladeとは?
laravelで利用できるテンプレートエンジンです。
Bladeのメリット
- 処理はコントローラー側に任せて、表示だけに専念させる事が可能です。
- 単独のPHPの場合はrequire等で外部PHPの内容を取得したりすると思いますが、bladeの場合は後述するBlade構文(@のついた構文)を使用してわかりやすく記述する事が可能です。
Blade構文の種類
bladeの中では下記のような独自構文を使用する事が可能です。
構文 | 説明 | ||
---|---|---|---|
@foreach 〜 @endforeach | 配列をループさせる事が可能です。 | ||
@auth 〜 @endauth | 認証済みのユーザー向けの処理を記述する事が可能です。 | ||
@guest 〜 @endguest | 認証していないユーザー向けの処理を記述する事が可能です。 | ||
{{ $変数 }} | PHPの関数を使用する事が可能です。また、htmlspecialchars関数を通すことになるので、変数の出力にXSS対策を実施する事が可能です。 | ||
{!! $変数 !!} | htmlspecialcharsでエスケープしたくない場合に使えます。(単に普通のPHPのechoで出力した内容と同じになる。) | ||
{-- コメント --} | コメントできます。 | ||
@csrf | 記述するだけでcsrf対策をする事が可能です。入力フォーム等に記述することになるでしょう。get以外では必ず必要になります。 | ||
@method | formはデフォルトでgetとpostしか対応していない。 | ||
@extends(レイアウト) | 後述する継承する親レイアウト定義を「@extends('layout.app')」と記述する事で実施できます。 | ||
@yield('セクション名')
|
@section('セクション名')で指定した箇所を読み込む事が可能です。
| ||
@error('フィールド名l')~@enderror
| フォームの指定したフィールド名をバリデーションします。 | ||
@include | 他のbladeファイルを呼び込みます。 | ||
@section | 「@section('title', 'Page Title')」と指定する。第一引数でHTMLタグなどを指定できます。 | ||
@php |
phpコードを記述できます。ただしビューが汚くなり得るのであまり使わない方が良いです。 | ||
@dump | 「@dump(変数)」などと使います。デバッグ用に使います。Laravelのdumpヘルパと同じです。 | ||
@dd | 「@dd(変数)」などと使います。デバッグ用に使います。Laravelのddヘルパと同じです。 | ||
@class | CSSのクラスを条件付きで適用できます。 |
レイアウト定義
下記にレイアウトファイルを定義しておけばこれをテンプレートとしてフロントのHTMLレイアウトを定義する事ができます。
1 |
resources/views/layout/app.blade.php |
この記事へのコメントはありません。