在 Laravel blade 中循环时限制 html 元素

Limit the html element when looping in Laravel blade

我有一个 table 通过 Laravel 的 @foreach 循环显示数据。循环最多限制为 3。但我希望 table 内的图标最多限制为 2。这是服务时的界面:

blade:

<table class="table">
    <thead>
        <tr>
            <th>Nama Peserta</th>
            <th>Diklat</th>
            <th>Kabupaten/Kota</th>
            <th>Nilai</th>
        </tr>
    </thead>
    <tbody>
        @foreach ($data->take(3) as $obj)
        <tr>
            <td>
            <div class="d-flex align-items-center">
                {!! $medals !!}
                <div>
                    <span>{{$obj->user->name}}</span>
                </div>
            </div>
            </td>
            <td>{{$obj->diklat->name}}</td>
            <td>{{$obj->user->regency->name}}</td>
            <td>
                <div class="avatar bg-light-success mr-2">
                <div class="avatar-content">
                    <span>98</span>
                </div>
                </div>
            </td>
        </tr>
    @endforeach
    </tbody>
</table>

{!! medals !!} 是我要限制的元素。我通过控制器创建它。像这样:

<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\{Diklat, User, UserDiklat, Regency};
use Illuminate\Support\Facades\DB;

class DashboardController extends Controller
{
    public function index()
    {

        $data = UserDiklat::with('diklat', 'user')->where('is_approve', 1)->get();

        $medals = '<div class="avatar bg-light-warning mr-2">
                    <div class="avatar-content">
                        <i data-feather="award" class="font-medium-3"></i>
                    </div>
                </div>';

        return view('admin.index', compact('data', 'medals'));
    }
}

那么,如何限制table里面的$medals图标只显示2个,而table里面的数据最多显示3个呢?我一直在寻找这个问题,但仍然没有找到它。我希望你们能帮助我。提前谢谢你。

试试这个。我稍微更新了你的代码。

<table class="table">
    <thead>
        <tr>
            <th>Nama Peserta</th>
            <th>Diklat</th>
            <th>Kabupaten/Kota</th>
            <th>Nilai</th>
        </tr>
    </thead>
    <tbody>
    <?php $print_medal = 0; ?>
@foreach ($data->take(3) as $obj)
        <tr>
            <td>
            <div class="d-flex align-items-center">
                @if ($print_medal < 2) {!! $medals !!} @endif
                <div>
                    <span>{{$obj->user->name}}</span>
                </div>
            </div>
            </td>
            <td>{{$obj->diklat->name}}</td>
            <td>{{$obj->user->regency->name}}</td>
            <td>
                <div class="avatar bg-light-success mr-2">
                <div class="avatar-content">
                    <span>98</span>
                </div>
                </div>
            </td>
        </tr>
    <?php $print_medal++; ?>
@endforeach
    </tbody>
</table>