46
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel:$loopによるループ変数の使用例

Last updated at Posted at 2017-11-20

#繰り返し専用のループ変数($loop)

$loopという繰り返しディレクティブの変数が用意されているので条件識別と連動させて処理する

//最初の繰り返しかどうか
$loop->first

//最後の繰り返しかどうか
$loop->last

//現在の繰り返し数(1から開始)
$loop->iteration

//あと何回繰り返すか(残り回数)
$loop->remaining

//繰り返しで使っている配列の要素数
$loop->count

//繰り返しのネスト数
$loop->depth

//ネストしている場合、親の繰り返しのループ変数を示す
$loop->depth

##使用例
$dataの数だけデータをリスト形式で表示するコード
ループ内でも初めのループ・最後のループを検知して、その時のみ文字を出力している

resources/views/hello/index.blade.php
<html>
<head>
    <title>Request&Response</title>
    <style>
        body {
            font-size:16pt;
            color:#999;
        }
        h1 {
            font-size:100pt;
            text-align: right;
            color:#eee;
            margin:-40px 0 -50px 0;
        }
    </style>
</head>
<body>
    <h1>Blade/Index</h1>
    <p>foreachディレクティブの例</p>
        @foreach($data as $item)
            //最初の繰り返しかどうか
            @if($loop->first)
            <p>※データ一覧</p><ul>
            @endif
            //現在の繰り返し数(1から開始)
            <li>NO,{{$loop->iteration}}.{{$item}}</li>
            //最後の繰り返しかどうか
            @if($loop->last)
            </ul><p>ここまで</p>
                @endif
        @endforeach

</body>
</html>
app/Http/Controllers/HelloController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\Response;


class HelloController extends Controller
{
    public function index() {
        $data = ['one','two','three','four','five'];
        return view('hello.index',['data'=>$data]);
    }
}
46
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?