@foreach
循环和原生PHP的函数一样,
$loop
循环变量是一个
stdClass
对象提供关于你目前在循环中的元信息。看一看它所公开的属性:
- $loop->index: 当前循环迭代的索引(从0开始)
- $loop->iteration: 当前的循环迭代(从1开始)
- $loop->remaining: 剩下的迭代数量
- $loop->count: 循环中的数据总数
- $loop->first: 是否这是循环中的第一条数据,返回Boolean值
- $loop->last: 是否这是循环中的最后一条数据,返回Boolean值
- $loop->depth: 当前循环的嵌套级别
- $loop->parent: 当在嵌套循环中,父的循环变量
- HomeController
public function index(){
//张高伟测试
$users = factory('App\User',10)->make(); $pages = collect([ ['name' => 'page1','children' => []], ['name' => 'page2','children' => ['name' => 'page6']], ['name' => 'page3','children' => []], ['name' => 'page4','children' => ['name' => 'page7']], ['name' => 'page5','children' => []], ]); return view('home')->with(compact('users','pages'));}
- view(home.blade.php)
//张高伟测试
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Dashboard</div>
<div class="panel-body">
<ul>
@foreach ($users as $user)
@if($loop->first || $loop->last)
<li>
{{ $loop->index }}: {{ $user->name }}---{{$user->email}}
</li>
@else
<li>
剩下{{$loop->remaining}}个用户没有输出,当前迭代:{{$loop->iteration}},总共{{$loop->count}}个用户== {{ $loop->index }}: {{ $user->name }}---{{$user->email}}
</li>
@endif
@endforeach
</ul>
<hr>
<ul>
@foreach ($pages as $page)
<li>
当前index:{{ $loop->index }}: {{ $page['name'] }},当前level:{{$loop->depth}}
@if($page['children'])
<ul>
@foreach($page['children'] as $child)
<li>
父级index:{{$loop->parent->index}},当前index:{{$loop->index}}:{{$child}},当前level:{{$loop->depth}}
</li>
@endforeach
</ul>
@endif
</li>
@endforeach
</ul>
</div>
</div>
</div>
</div>
</div>
@endsection
界面展示: