LoginSignup
58
60

More than 3 years have passed since last update.

【Laravel】Bladeの主要ディレクティブ一覧

Last updated at Posted at 2019-06-16

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 ネストしている場合、親の繰り返しループ変数を示す

注意したい点

  • @whileディレクティブは@phpディレクティブが必要
  • PHPおなじみのcontinueやbreakも@continue @breakとして使用することができる
  • ネスト数=入れ子の数

@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の○○の部分を引数に与える
  • サブビューとはあるビューから別のビューを読み込んではめ込んだもの

※ この記事は備忘録目的の記事です

58
60
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
58
60