Laravelのforeachはもう古いのか?

概要

通常だとforeachで配列なりオブジェクトをforeachで回して表示させるのですが、
このforelseは対象が空だった時の処理も一つの制御構文で表現できます。

LaravelのBladeでforelseを使ってみます。
分かる範囲ですが、Laravel5.2以降は使える模様です。(2018/9月時点)

通常だとforeachを@emptyで囲む必要がありますが、この書き方だと不要になります。
デメリットもあります。
この構文はあまりメジャーではないので、読む人が知らないor理解できない場合があるということです。
今後人気がでないとどこかのアップデートで落ちる可能性もでてくるでしょう。。。
ただ、書いてある内容を見ればすぐ理解できるものなので、とりあえずは使っても問題ない構文かと思います。

ソースコード

 
forelse例

@forelse ($posts as $key => $post)
  // $postsをforeachする
@empty
  //$postsが空のとき
@endforelse

 

公式例

@forelse ($users as $user)
    <li>{{ $user->name }}</li>
@empty
    <p>ユーザなし</p>
@endforelse

 

使用例

@forelse ($posts as $key => $post)
		<hr class="latest-hr">
		<a href="{{ url('/error-post/detail/'.$post->id."/".$post->url) }}">
			<h6 class="mb-0">{{$post->title}}</h6>
		</a>
		<small class="d-block text-left">
			<p class="latest5-p">{{ $post->user->name }} / {{$post->pv}}pv / コメント数:{{ $post->comments()->count() }} / {{ $post->created_at->format('Y-m-d') }}</p>
		</small>
@empty
		<small class="d-block text-left">
			<p class="latest5-p">検索結果がありませんでした。</p>
		</small>
@endforelse
管理ユーザー / 2018-09-18 / 117 / 0
このエントリーをはてなブックマークに追加

まだコメントがついていません。

ログイン不要でコメントの投稿ができます。