#Bladeとは
LaravelにはBladeというテンプレートエンジンが用意されています。
Bladeを使うと、テンプレートを継承したり、レイアウトの一部をセクションの一部としてはめ込むことができます。
効率的にレイアウトを作成したいならBladeを使うべき!
#ディレクティブとは
構文のような役割を果たすもの。テンプレートに簡単に組み込むことができる。
##分岐処理を行うディレクティブ
ディレクティブ | 役割 |
---|---|
@if(条件) | 条件分岐 |
@unless(変数) | 条件非成立の時表示 |
@empty(変数) | 変数が空の場合表示 |
@isset(変数) | 変数が定義済みの場合表示 |
##繰り返しのディレクティブ | |
ディレクティブ | 役割 |
:-----------------: | :------------------: |
@for(初期化 ; 条件; 後処理;) | PHPのfor構文に相当するもの |
@foreach($配列 as $変数) | PHPのforeach構文に相当するもの |
@while(条件) | PHPのwhile構文に相当するもの |
###繰り返しのディレクティブに用意されている変数 $loop | |
ループ変数 | 役割 |
:-----------------: | :------------------: |
$loop->index | 現在のインデックス(0~) |
$loop->interation | 現在の繰り返し数(1~) |
$loop->remaining | 後何回繰り返すのか |
$loop->count | 繰り返しで使っている配列の要素数 |
$loop->first | 最初の繰り返しかどうか |
$loop->last | 最後の繰り返しかどうか |
$loop->depth | 繰り返しのネスト数 |
$loop->parent | ネストしている場合、親の繰り返しループ変数を示す |
###注意したい点 |
##@PHPディレクティブ
ディレクティブ | 役割 |
---|---|
@php | Bladeテンプレート内でPHPのスクリプトを実行する |
###注意したい点 |
- Bladeテンプレート内でPHPスクリプトを実行できるからといって、使いまくるのはよくない。必要最小限にとどめておく必要がある。
##レイアウト作成時に必要なディレクティブ
ディレクティブ | 役割 |
---|---|
@section(名前) | 指定した名前でセクションが用意される |
@parent | 親レイアウトのセクションを示す |
@yield(名前) | 配置場所を示すもの |
@extends(Bladeのファイル名) | レイアウトの継承設定 |
@component(名前) | コンポーネントの組み込み |
@slot(名前) | {{}}で指定された変数に値を設定する |
@include(読み込むテンプレート名,[値の指定]) | サブビューの読み込み |
@each(テンプレート名, 配列, 配列から取り出したデータを入れる変数名) | 配列などから値を取り出し指定のテンプレートにはめ込んで出力する |
###注意したい点 |
- @yieldはendyieldみたいなのは必要ない
- 最上位に位置するベースのレイアウトでの@sectionは@endsectionではなく@showというディレクティブでセクションの終わりを指定する
- @sectionには書き方が2つある
- @extendsは○○.blade.phpの○○の部分を引数に与える
- サブビューとはあるビューから別のビューを読み込んではめ込んだもの
※ この記事は備忘録目的の記事です