laravel
blade

Bladeの構文をざっくりと

Laravel標準のテンプレートエンジンであるbladeについてざっくりと構文紹介

値の表示

HTMLエスケープを行う

{{ $value }}

HTMLエスケープを行わない

{!! $value !!}

どちらも波括弧内が評価されてから表示される

制御文

if

@if(condition1)
...
@elseif(condition2)

@else

@endif

unless

@ifと逆の働きをする

@unless(condition)
...
@else

@endunless

isset

$variableが定義されていた場合にtrueとなる.

@isset($variable)
...
@else

@endisset

empty

$variableが空文字列, null, 0などの時にtrueとなる

@empty($variable)
...
@else

@endempty

注)issetとemptyは内部的にPHPのisset, emptyが使われる。両者の使い方は非常に癖があるので(特にempty)、PHP isset, empty, is_null の違い早見表が参考になる。

for

@for(initialize; condition; increment)
...
@endfor

foreach

@foreach($array as $variable)
...
@endforeach

foreach-else

$arrayから取り出す値が無くなったら@emptyの処理を実行して終了する。

@forelse($array as $variable)
...
@empty
...
@endforelse

while

@while(condition)
...
@endwhile

break, continue

@break
@continue

php

PHPのコードを直接書ける。やたらめったら使うものではない。

@php
...
@endphp

$loopについて

@foreachなどの繰り返しディレクティブの中では$loopという特殊変数が利用できる。このオブジェクトはループに関する情報を保持している。

プロパティ名 意味
index ループの現在のインデックス(0スタート)
iteration 現在の繰り返し回数(1スタート)
remaining 残りループ回数
first 最初の繰り返しならtrue
last 最後の繰り返しならtrue
depth ループのネスト数
parent ネストしている場合、上位にあるループの$loop

以下サンプル

@foreach($data as $d)
    @if($loop->first)
        <h3>list</h3>
    @endif
    no.{{$loop->iteration}}: {{$d}}<br>
@endforeach