Laravel5.4のBladeテンプレートを試す

Bladeテンプレートが優先

Viewファイルにindex.phpindex.blade.phpがあった場合、Bladeテンプレートのindex.blade.phpが優先的に適用される。

return view('index'); // index.blade.php >> index.php

エスケープ

Bladeの{{ }}文は自動的にPHPのhtmlentities関数を通してXSS攻撃を防ぐ。

目次

エスケープしないで変数を表示

{!! $name !!}

三項演算子の短縮形

{{ isset($name) ? $name : 'Default' }}
 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
{{ $name or 'Default' }}

ifディレクティブ

@if (条件)
    // 内容 
@elseif(条件)
    // 内容 
@else
    // 内容 
@endif

よく使うif比較の簡略系

@unless if(!condition) と同等

@unless(condition)
    //
@endunless

@empty(condition) == if(empty(condition))

@empty()
@endempty

@isset(condition) == if(isset(condition))

@isset() 
@endisset

繰り返し

@for ($i = 0; $i < 10; $i++)
    現在の値は: {{ $i }}
    // @continue
    // @break
@endfor

@foreach ($users as $user)
    これは {{ $user->id }} ユーザです。
@endforeach

@forelse ($users as $user)
    
  • {{ $user->name }}
  • @empty ユーザなし @endforelse @while (true) 無限ループ中 @endwhile

    @forelseは値をすべて取り出し終えて、取り出せなくなったときに@emptyにある処理を実行して繰り返しを終える。

    よかったらシェアしてね!

    この記事を書いた人

    目次
    閉じる