# 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');