Help us understand the problem. What is going on with this article?

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

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

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

nyax
勉強中大学生
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした