Laravelの条件分岐とループ処理をBladeで書く方法
生徒
「LaravelのBladeテンプレートで条件によって表示を変えたり、繰り返し処理をしたいです。どうやって書くんですか?」
先生
「BladeにはPHPのif文やループ処理を簡単に書ける構文が用意されています。初心者でも理解しやすいですよ。」
生徒
「具体的にはどんな書き方なんでしょう?」
先生
「これから条件分岐とループ処理の基本を一緒に学んでいきましょう!」
1. Bladeの条件分岐とは?
条件分岐は、プログラムの中で「もし○○なら〜」と処理を分ける仕組みです。BladeではPHPのif文を簡単に書ける特別な構文があります。
例えば、ある変数が特定の値ならメッセージを表示し、それ以外なら別のメッセージを表示する、といった使い方ができます。
2. Bladeでのif文の基本的な書き方
Bladeの条件分岐は @if、@elseif、@else、@endif を使います。
@if ($score >= 60)
合格です!
@elseif ($score >= 40)
もう少し頑張りましょう。
@else
不合格です。
@endif
この例では、$score の値によって表示するメッセージが変わります。@if は「もし〜なら」、@elseif は「そうでなくて、もし〜なら」、@else は「それ以外の場合」という意味です。
3. Bladeのループ処理とは?
ループ処理は、同じ処理を何度も繰り返す仕組みです。BladeではPHPのforやforeach文を簡単に書くための構文が用意されています。
例えば、商品のリストや投稿の一覧など、複数のデータを順番に表示したいときに使います。
4. Bladeでのforeachループの書き方
Bladeで繰り返し処理をするには、 @foreach と @endforeach を使います。
@foreach ($fruits as $fruit)
<li>{{ $fruit }}</li>
@endforeach
この例では、$fruits という配列の中身を1つずつ取り出してリストとして表示します。{{ }} は変数の値を画面に表示するBladeの書き方です。
5. ループ内で条件分岐を使う例
ループの中でも条件分岐を使って、例えば特定の値だけ色を変えたり表示を変えたりできます。
@foreach ($fruits as $fruit)
@if ($fruit == 'リンゴ')
<li style="color:red;">{{ $fruit }}</li>
@else
<li>{{ $fruit }}</li>
@endif
@endforeach
この例では、果物が「リンゴ」の場合だけ赤色で表示し、それ以外は普通の表示になります。
6. Bladeのループで便利な変数
Bladeのループ内では、繰り返しの回数や最初か最後かを知るための特別な変数が使えます。
@foreach ($fruits as $index => $fruit)
<li>{{ $index + 1 }}: {{ $fruit }}</li>
@endforeach
このようにインデックス(番号)を使って、リストに番号を振ることも簡単です。
7. 条件分岐やループ処理で気をつけるポイント
条件分岐やループは便利ですが、複雑になりすぎるとコードが読みにくくなります。なるべくシンプルに書き、変数の意味もわかりやすくすることが大切です。
また、BladeではPHPのコードをそのまま書くこともできますが、Bladeの構文を使うと読みやすくて安全ですのでおすすめです。
まとめ
Bladeで条件分岐とループ処理を書く意味を振り返ろう
ここまで、LaravelのBladeテンプレートで使える条件分岐とループ処理について、基本から具体例まで順番に学んできました。Bladeは、HTMLの中に直接PHPの処理を書かずに、読みやすく整理された構文で画面表示を制御できるのが大きな特徴です。特に @if や @foreach といった構文は、Webアプリケーション開発では頻繁に登場します。
条件分岐を使うことで、「ログインしているときだけ表示する」「点数によってメッセージを変える」「データがある場合だけ一覧を出す」といった、実際の画面に近い制御ができるようになります。一方、ループ処理を使えば、配列やデータ一覧をまとめて表示でき、同じHTMLを何度も書く必要がなくなります。これらはLaravelだけでなく、Web開発全体で重要な考え方です。
条件分岐とループを組み合わせると表現力が広がる
Bladeでは、ループの中に条件分岐を書くこともできるため、表示の柔軟性が一気に高まります。たとえば、特定のデータだけ強調表示したり、状態によって文言や色を変えたりといった処理が簡単に書けます。これは、管理画面や一覧画面、商品リスト、ブログ記事一覧など、さまざまな場面で役立ちます。
初心者のうちは「条件分岐はif文」「繰り返しはforeach」と役割を分けて考えると理解しやすいでしょう。Bladeの構文はPHPに近いため、プログラミング未経験者でも比較的とっつきやすく、HTMLの流れを壊さずに処理を書ける点が魅力です。
初心者向けのシンプルなサンプルで再確認
ここで、条件分岐とループ処理を組み合わせた、できるだけシンプルなサンプルをもう一度確認してみましょう。配列の中身を表示しつつ、特定の条件だけ表示を変える例です。
@foreach ($scores as $score)
@if ($score >= 60)
<p>{{ $score }}点:合格です</p>
@else
<p>{{ $score }}点:再チャレンジしましょう</p>
@endif
@endforeach
このように書くことで、配列の数だけ処理が繰り返され、点数に応じて表示内容が変わります。HTMLの中で自然に条件分岐とループが書けるのがBladeの強みです。まずは短いコードで動きを確認しながら、少しずつ慣れていくことが大切です。
シンプルに書くことが読みやすさにつながる
Bladeで条件分岐やループ処理を書くときは、処理を詰め込みすぎないことも重要なポイントです。条件が増えすぎる場合は、コントローラ側であらかじめデータを整理しておくと、ビューが読みやすくなります。Bladeは「表示に関する処理だけを書く場所」と意識すると、コード全体がすっきりします。
生徒
「Bladeの@ifや@foreachを使うと、画面表示を細かく調整できるんですね。」
先生
「そうです。条件分岐とループを覚えると、できることが一気に増えますよ。」
生徒
「HTMLの中にそのまま書けるので、表示の流れが分かりやすいと感じました。」
先生
「それがBladeの良いところですね。無理に難しい書き方をせず、シンプルに使うのがコツです。」
生徒
「まずは@ifと@foreachをしっかり使えるように練習してみます。」
先生
「それで十分です。慣れてくると、Laravelでの画面作りがどんどん楽しくなりますよ。」