1. 程式人生 > >Blade 模板

Blade 模板

在Laravel 5.3中,@foreach指令提供了更加強大的功能,在每一個@foreach迴圈體中都可以呼叫一個新的$loop變數。該變數是一個stdClass例項,包含了當前迴圈的元資料資訊,讓我們來看一下它提供的屬性:

  • index:從1開始的迴圈索引,1意味著是第一個條目。
  • remaining:迴圈還有多少個條目,比如當前是3箇中的第一個,那麼會返回2;
  • count:迴圈總條目數
  • first:是否是第一個
  • last:是否是最後一個
  • depth:迴圈的層級
  • parent:如果迴圈位於另一個@foreach中,返回父迴圈引用,否則返回null

下面是一段示例程式碼:

<ul>
    @foreach ($pages as $page)
        <li>{{ $page->title }} ({{ $loop->index }} / {{ $loop->count }})</li>
    @endforeach
</ul>

如果有巢狀迴圈,可以使用depth判斷,並且通過$loopparent屬性獲取相應資訊:

<ul>
    @foreach ($pages as $page)
        <li>{{ $loop->index }}: {{ $page->title }}
        @if ($page->hasChildren())
        <ul>
            @foreach ($page->children() as $child)
                <li>{{ $loop->parent->index }}.{{ $loop->index }}:
                {{ $child->title }}</li>
            @endforeach
        </ul>
        @endif
    </li>
    @endforeach
</ul>

就是這樣簡單、方便。