ホーム > Laravel > Laravelでforeachを使って一覧を表示する方法
Laravel

Laravelでforeachを使って一覧を表示する方法

いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。

Laravel で foreach を使って一覧を表示する方法についてまとめました。

foreach を使う方法

.blade.php ファイルで

<div>
    <ol>
        @foreach($users as $user)
        <li>{{ $user->name }}</li>
        @endforeach
    </ol>
</div>

と書きます。

@foreach@endforeach の間にある

<li>{{ $user->name }}</li>

の部分が、$users の数だけ生成されます。

好きな情報を users の数だけ表示できる

@foreach@endforeachの間に色々書くと、その部分が$users の数だけ生成されます。

<div>
    @foreach($users as $user)
      <div>
          <p>ユーザーの名前は、{{ $user->name }}さんです</p>
          <p>IDは、{{ $user->id }}です</p>
          <img src="{{ $user->logo_url }}" alt="" />
      </div>
    @endforeach
</div>

このように複数タグ使っても大丈夫で、@foreach から@endforeach の間を users の数だけ表示してくれるというルールさえ分かっていれば、かなり自由にコードを書くことが可能です。

もちろんタグにクラスをつけて、CSS を当てることも可能です。

注意点

blade ファイルでしか使えない

例えば、出力結果がそのまま

@foreach($users as $user)

@endforeach

と表示されたとします。

その時は、ファイル名をミスっている可能性があります。

誤り:home.php

正解:home.blade.php

年に2回くらいやるミスです。

閉じタグをミスると悲惨

div タグの閉じタグミス

<div>
    @foreach($users as $user)
      <div>
          <p>ユーザーの名前は、{{ $user->name }}さんです</p>
          <p>IDは、{{ $user->id }}です</p>
          <img src="{{ $user->logo_url }}" alt="" />

    @endforeach
</div>

</div>$usersの数だけ足りなくなるので大変なレイアウト崩壊を起こします。

a タグの閉じタグミス(悲惨)

ちなみに<a>タグの閉じタグミスはかなり厄介で、勝手に閉じタグがブラウザ上で補完されて出力されます。

表示上違和感がなかったりするけど、余白とかホバーとか変な気がするけど原因分からない、という状態になりました。

@foreach($array as $a)
    <div>
        <a href="/">ホーム
    </div>
@endforeach

出力:

<div><a href="/">ホーム</a></div>
<a href="/"></a>
<div><a href="/"></a><a href="/">ホーム</a></div>
<a href="/"></a>
<div><a href="/"></a><a href="/">ホーム</a></div>
<a href="/"></a>

記述が少なければすぐに気づくのですが、実際は色々なタグをforeachで回すことは多々あると思います。

ミスをしないようにインデントは綺麗に整えたり、プラグインの整形機能を使った方が良いですね。

まとめ

Laravel の Blade ファイルで foreach を使う方法について簡潔にまとめてみました。

注意点含め、誰かの参考になれば幸いでございます。

今回の内容は、この辺りに書いてあります。

Laravel 11.x Blade テンプレート

フィードバックのお願い
この記事のフィードバックがありましたらYoutubeの適当な動画にコメントしていただいたり、お問い合わせからご連絡ください。