[Laravel] Bladeの @foreachを@forelseで簡単に

Laravelには@foreachでデーターが空になったときの処理を簡単に短く書くことができるディレクティブが用意されています。「@forelse」ディレクティブです。

@foreachディレクティブ

こちらは PHPのforeachと同様の機能。

@if ($posts->count() > 0)
    @foreach ($posts as $post)
        <li>{{ $post->name }}</li>
    @foreach
@else
    no post data
@endif

@forelseディレクティブ

こちらは PHPのforeach に if else文でデータが空のときの処理を加えたもの。
かなり簡潔に書くことができます。

@forelse ($posts as $post)
    <li> {{ $post->name }}</li>
@empty
    no post data
@endforelse


Author: webmaster