在 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>
我有一个 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>