【PHP/Laravel】便利なBladeテンプレートでforeachを書いてみよう!

こんにちは!エンジニアのオータケです!

皆さんはLaravelを使う際にBladeテンプレートエンジン使いこなせてますか?

特に、モデルからデータを取得しビューに渡したあと表示する場面が出てくるかと思いますがその表示をどうやって実現していますか?

本記事では、

[基礎] Bladeテンプレートエンジンとは
[基礎] Bladeテンプレートエンジンを使ってforeachを書く方法
[実践] foreachを使った際の最初の処理と最後の処理で何かしたい

について解説いたします。

ぜひご覧ください!

Bladeテンプレートエンジンとは

LaravelにはBladeテンプレートエンジンという機能がついています。

ビューを作成する際にはこのBladeテンプレートエンジンを使います。

このBladeテンプレートエンジンを使うことで同じ処理を書くことを省けたり、面倒な処理が少々短くすることができたり便利な機能です。

今回はそのBladeテンプレートエンジンを使ったforeachの書き方を学んでいきます。

Bladeテンプレートを使ってforeachの処理を書こう

早速Bladeテンプレートでのforeachの書き方を見てみましょう

@foreach ($articles as $article)
  echo $article->name;
@endforeach

Bladeテンプレートのforeachを使うためには@foreachを使います。必ず@foreachのあとには@endforeachで閉じる必要があります。

あとは、PHPのforeachと同じような使い方です。

そもそもforeachってなんだろう?という方についてはこちらの記事をご覧ください。

【PHP入門】foreach文の基本を初心者向けに解説
更新日 : 2019年7月15日

ループの最初または最後に何か処理をしたい場合

先程は@foreachを使ってループ処理を書いてみました。

Bladeテンプレートエンジンの@foreachにはループの最初とループの最後を判断するための機能があります。

まず、ループの最初の処理かどうかを判断するには次のようなコードを書きます。

@foreach($articles as $article)
  @if ($loop->first)
    echo 'ループの最初';
  @endif
@endforeach

$loop->firstを使うことでループの最初かどうかを判断することができます。

では次に、ループの最後かどうかを判断するためにはどうすればよいでしょうか?

@foreach($articles as $article)
  @if ($loop->last)
    echo 'ループの最後';
  @endif
@endforeach

ループの最後かどうかについては$loop->lastを使うことで判断することができます。

とっても簡単ですよね?

これらを組み合わせるとモデルで取得してきたデータをテーブルに表示する際にヘッダーにだけ何か処理をしたい、フッターにだけなにか処理をしたいなど実現することができます。

まとめ

いかがでしょうか?
今回はBladeテンプレートの@foreachについて解説してきました。

通常のforeachと使い方はかわりません。

そのため覚えるほどのことでもないかと思いますが、後半に解説した$loop->firstや$loop->lastは便利な機能だと思うので覚えておいて損はないでしょう。

Bladeテンプレートを使いこなしてよりよいLaravelライフを!

「プログラミング、右も左もわからない…」という方にオススメ

cta_under_bnr

当プログラミングスクール「侍エンジニア」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニアは上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

詳細はこちら

書いた人

オータケ

30歳、フリーランスプログラマ。中学の頃よりプログラミングに興味を持ちゲーム開発やWebサイト構築などを経験
新しいフレームワークやライブラリに興味があり革新的な機能が含まれていると泣いて喜ぶ。

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー