PHP - Laravel 视图模板(blade.php) 循环便利

336 阅读1分钟
  • web.php 路由参数

    Route::get('req', function () {
        // Json 参数
        $users = [
            ['id'=>1, 'name'=>'test'],
            ['id'=>2, 'name'=>'dzm'],
            ['id'=>3, 'name'=>'xyq']
        ];
        // 传递
        return view('index')->with(['users'=>$users]);
    });
    
  • 视图模板 (blade.php) 常用的 for 循环为:

    1、@foreach

    <div>方式一:</div>
    @foreach ($users as $user)
        <div>{{ $user['name'] }}</div>
    @endforeach
    
    <hr>
    
    <div>方式二:</div>
    @foreach ($users as $key=>$value)
        <div>{{ $key }} - {{ $value['name'] }}</div>
    @endforeach
    

    2、@forelse

    <div>方式一:</div>
    @forelse ($users as $user)
        <div>{{ $user['name'] }}</div>
    @empty
        <div>没有数据</div>
    @endforelse
    
    <hr>
    
    <div>方式二:</div>
    @forelse ($users as $key=>$value)
        <div>{{ $key }} - {{ $value['name'] }}</div>
    @empty
        <div>没有数据</div>
    @endforelse
    
  • 输出结果一致。区别:当 $users 为空的时候,@forelse 会显示 @empty 中的元素,@foreach 则没有自带为空显示。

    image.png

  • 传递空数组,@forelse 结果

    // 传递空数组
    return view('index')->with(['users'=>[]]);
    

    image.png

  • 总结:在确定有数据的时候用 @foreach,在不确定有数据的时候用 @forelse