コレクション内の項目をレンダリングする
Blade
悩み事
Bladeテンプレートでコレクション内の項目をレンダリングしたい
解決方法
Bladeの@each
を利用します
少なくとも3つの引数を指定する必要があります:
- レンダリングするビューファイル名
- コレクション(配列等)
- 利用する項目名
例えば、Bladeテンプレートで以下の様なコードがある場合
Items:
@each('items.single', $items, 'item')
これは次の意味を持ちます:
Items:
@foreach ($items as $item)
@include('items.single', ['item' => $item])
@endforeach
アドバイス
第四引数にコレクションが空の場合に表示するものを指定する事が出来ます
Items:
@each('items.single', $items, 'item', 'items.empty')
$items
が空の場合にitems.empty
ビューがレンダリングされます
第四引数にビューではなく、文字列を指定する事も可能です
Items:
@each('items.single', $items, 'item', 'raw|There are no items')
$items
が空の場合に次の様なHTMLが出力されます
Items:
There are no items
Category
- App 29
- Artisan 28
- Auth 36
- Basic Development 4
- Blade 23
- Cache 25
- Config 5
- Configuration 12
- Controller 3
- Cookie 2
- Core Extension 7
- Crypt 6
- DB 4
- Database Configuration 3
- Eloquent 0
- File 26
- Form 30
- Hash 1
- Help 2
- Html 17
- Installation 13
- Lang 6
- Middleware 2
- Paginator 1
- Route 1
- Session 0
- Solution 2
- Service Provider 1
- Testing 2
- Packages by 3rd Parties 0