You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel框架下无Active状态房间数据时如何实现条件展示

实现方案

方案1:控制器预处理数据(推荐)

优先在控制器层完成数据筛选,避免在视图中处理集合逻辑,性能更高、代码职责更清晰:

// 对应控制器方法内的代码
public function dashboard()
{
    // 提前筛选状态为Active的房间,最多取5条,再传递到视图
    $activeDiklats = Diklat::where('status', 'Active')->take(5)->get();
    return view('你的视图路径', compact('activeDiklats'));
}

视图层直接使用Laravel Blade自带的@forelse指令,完美适配「有数据循环、无数据显示空提示」的场景:

<div class="card-body">
    @forelse ($activeDiklats as $diklat_list)
    <!-- 存在活跃房间时展示的内容 -->
    <div class="transaction-item">
        <a href="javascript:void(0)" class="text-dark">
            <div class="media">
                @php ($icons = ["bg-light-primary","bg-light-success","bg-light-danger","bg-light-warning", "bg-light-info"])
                <div class="avatar {{$icons[$loop->index]}} rounded">
                    <div class="avatar-content">
                        <i data-feather="book" class="avatar-icon font-medium-3"></i>
                    </div>
                </div>
                <div class="media-body ml-1">
                    <h6 class="transaction-title">{{$diklat_list->name}}</h6>
                    <small>{{$diklat_list->userDiklat->where('is_approve',1)->count()}} peserta</small>
                </div>
            </div>
        </a>
        <div class="font-weight-bolder text-danger"></div>
    </div>
    @empty
    <!-- 无活跃房间时展示的提示区域 -->
    <div class="p-4 text-center">
        <small class="font-italic centering-auto">当前暂无可用的活跃房间</small>
    </div>
    @endforelse
</div>

方案2:视图内直接过滤(适合临时调试场景)

如果不方便修改控制器代码,可以直接在视图内完成集合过滤,注意你原代码中过滤条件写的是where('status', 'Aktif'),如果表中枚举字段的实际取值是Active,需要对应修改过滤值,否则会始终筛选不到数据:

<div class="card-body">
    <!-- 先在视图内完成数据过滤 -->
    @php $activeDiklats = $diklats->where('status', 'Active')->take(5); @endphp
    
    @forelse ($activeDiklats as $diklat_list)
    <!-- 活跃房间展示内容和方案1一致,此处省略 -->
    @empty
    <!-- 空提示内容和方案1一致,此处省略 -->
    @endforelse
</div>

@forelse是Laravel专门为这类场景设计的语法,不需要额外手动写@if($activeDiklats->isEmpty())的判断,语法更简洁直观。

内容的提问来源于stack exchange,提问作者Khairunnisa Syahfitri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:39:02