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

Laravel通知Blade模板else语句失效问题求助

问题分析与解决方案

你的代码逻辑存在两个核心问题:

  1. 当$notifications集合为空时,@foreach循环根本不会执行,内部所有判断和输出都不会触发,导致页面空白。
  2. 当前的else分支是针对单个通知不符合musicOwner条件的情况,而非整个通知集合为空的场景,逻辑完全错位。

修正方案

使用Blade提供的@forelse指令(专门处理循环集合为空的场景),同时调整逻辑:

<body>
    <main>
        @include('siteLayout.sidebar')
        <div class="wrapper">
            @include('siteLayout.header')
            <div class="main-container">
                <div class="main-header">Notifications</div>
                <div class="main-contents">
                    <ul class="notification-lists">
                        @forelse ($notifications as $notification)
                            {{-- 显示当前用户作为musicOwner的通知 --}}
                            @if ($notification->musicOwner == Auth::user()->id)
                                <li class="notification unread">
                                    <span class="notification-icon"></span>         
                                    <div>You have notifications</div>
                                </li>
                            @endif
                        @empty
                            {{-- 通知集合为空时显示提示 --}}
                            <li class="notification">
                                <div>未找到通知</div>
                            </li>
                        @endforelse
                    </ul>
                </div>
            </div>
        </div>
    </main>
</body>

额外优化建议

提前在控制器中过滤通知,直接查询出属于当前用户的通知,避免在模板中做条件判断,代码更简洁高效:

// 控制器代码示例
$notifications = Notification::where('musicOwner', Auth::id())->get();

对应模板可简化为:

@forelse ($notifications as $notification)
    <li class="notification unread">
        <span class="notification-icon"></span>         
        <div>You have notifications</div>
    </li>
@empty
    <li class="notification">
        <div>未找到通知</div>
    </li>
@endforelse

内容的提问来源于stack exchange,提问作者Tizi prince

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:45:35