(Laravel) ビュー【bladeのディレクティブの使い方】

 

LaravelのViewについてのメモ書き。
とくにbladeで使えるディレクティブについてのメモ書き

 

bladeとは

Laravelで使われているテンプレートエンジン
画面表示のファイルを分かりやすく、簡単に作ることができる。

 

ディレクティブとは

bladeで使える、@から始まる範囲内で、特定の処理をする記述方法
これのおかげでコードがスッキリする。

@for (初期値 ; 条件 ; 後処理 )

//繰り返し処理

@endfor

 

従来のphp通りの想像しやすいディレクティブ

ディレクティブがなんなのか全くわからない人でも、
下の例を見れば使い方は容易に想像できると思うので、簡単に紹介

 

if文のディレクティブ

@if (条件)
    //処理
@elseif ()
    //処理
@else
    //処理
@endif

 

普通のif文と違うのは、中かっこが無いことだ。
@と@endの間にどんどん処理を書いていく。

 

for文のディレクティブ

@for (初期値 ; 条件 ; 後処理 )
    //処理
@endfor

 

foreach文のディレクティブ

@foreach ($配列 as $変数)
    //処理
@endforeach

 

while文のディレクティブ

@while (条件)
    //処理
@endwhile

 

上記繰り返しの処理(for、foreach、while)中で、下記ディレクティブを使用することも可能。

  • @break
  • @continue

 

これも普通通りのルール(処理抜け、処理スキップ)と変わらない。
注意点としては、処理を途中で遮るだけなので、@endbreakとかは書かなくて良い。

 

繰り返し処理で使える特殊な$loop変数

bladeでは$loopという、繰り返し処理で使える特殊な変数が存在する。
実態はオブジェクトで、「$loop->取り出したい値」とアクセスすることで、
繰り返し処理中の様々な情報(プロパティ)にアクセスできる。

以下様々なプロパティへのアクセスまとめ

  • $loop->index 現在のインデックス(ゼロから開始)
  • $loop->iteration 現在の繰り返し回数(1から開始)
  • $loop->remaining あと何回繰り返すか(残り回数)
  • $loop->count 繰り返しで使っている配列の要素数
  • $loop->first 最初の繰り返しかどうか(最初ならtrue)
  • $loop->last 最後の繰り返しかどうか(最後ならtrue)
  • $loop->depth 繰り返しのネスト数
  • $loop->parent ネストしている場合、親の繰り返しのループ変数を示す

 

bladeで使える特殊なディレクティブ

bladeで使える特殊なディレクティブについて紹介

 

unless文のディレクティブ

@unless (条件)
    //処理
@else
    //処理
@endunless

 

ifの真逆の働きをするunless。条件がfalseの場合に分岐に入る。
なのでelse文を加えた場合、本来trueのものがelseの分岐に入る

 

empty文のディレクティブ

@empty (変数)
    //処理
@else
    //処理
@endempty

 

条件に指定した変数が空の場合に分岐に入ってくる。
なのでelse文を加えた場合、空でない場合にelseの分岐に入ってくる

 

isset文のディレクティブ

@isset (変数)
    //処理
@else
    //処理
@endisset

 

変数そのものが定義されているか判断する。
変数が定義されている、かつnullでない場合に、trueとなる。
なのでelseを加えた場合や、変数が未定義の場合にfalseとなる。

 

phpを記述できるディレクティブ

@php
    //処理
@endphp

 

PHPのスクリプトそのものを書き込むことができる
ただ、bladeはあくまでviewなので、このディレクティブでモリモリ複雑なphpを書き込むことは推奨されない。

 

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。