# Laravel blade foreach loop と current url

blade(ブレード)は「刃」の意味をする
Laravel Blade はテンプレートの継承や html エスケープなど豊富な機能がありながら、シンプルでパワフルなテンプレートエンジンです。以前 twig で開発経験があるなら、すぐに blade の使い方になれるでしょうが、blade 使う時によく使う foreach loop と現在パージの URL 取得について紹介します。

# foreach $loop 変数プロパティ一覧

blade foreach $loop 変数のプロパティ

プロパティ 説明
$loop->index 現在のインデックス(初期値 0)
$loop->iteration 現在の繰り返し数(初期値 1)
$loop->remaining 繰り返しの残り数
$loop->count 繰り返し中の配列の総アイテム数
$loop->first ループの最初の繰り返しか
$loop->last ループの最後の繰り返しか
$loop->depth 現在のネストレベル
$loop->parent ループがネストしている場合、親のループ変数
// 一階層
@foreach ($items as $item)
    @if ($loop->first)
        // これは最初の繰り返し
        @continue
    @endif

    @if ($loop->last)
        // これは最後の繰り返し
        @break
    @endif
@endforeach

// 複数階層
@foreach ($items as $item)
    @foreach ($item->posts as $post)
        @if ($loop->parent->first)
            // これは親のループの最初の繰り返しだ
        @endif
    @endforeach
@endforeach

# Blade の繰り返し 配列バラす

@for ($i = 0; $i < 10; $i++)
    現在の値は: {{ $i }}
@endfor

@foreach ($users as $user)
    <p>これは {{ $user->id }} ユーザーです。</p>
@endforeach

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

@while (true)
    <p>無限ループ中</p>
@endwhile

# Blade で現在 URL 取得

https://example.com/user?id=123の URL とします。

/**
 * 現在フルURL クエリ文字列まで取得
 * https://example.com/user?id=123
 */
{{ request()->fullUrl() }}

/**
 * 現在URL取得 クエリ文字列なし
 * https://example.com/user
 */
{{ request()->url() }}

/**
 * 現在リクエストURIの取得
 * /user
 */
{{ request()->path() }}

/**
 * 現在リクエストメソッドの取得
 * GET
 */
{{ request()->method() }}

/**
 * 現在リクエスト指定クエリの取得
 * 123
 */
{{ request()->query('id'); }}


`is`メソッドにより、リクエストの URI が指定されたパターンに正規表現でマッチングチェックできる

if (request()->is('user/\*')) {
    // trueの場合
}

リクエストからクッキー情報を取得

request()->cookie('name');
Cookie::get('name');
2021-03-02
  • laravel