我有一个通知表,其中每一行都会向用户显示不同的通知。我试图做的部分是,如果连续值为 1,则显示一个句子,而如果值为 2,则显示另一个句子。如果我有 2 行,其中一个有 1 而另一个有 2 ,则显示两行。知道为什么下面的代码总是给出“数字 1”的输出,尽管表中有“数字 2”值? @foreach(auth()->user()->notifics as $notification) @if(Auth::user()->notifics()->where('data_type', 1)->first()->exists()) <a href="#"> number 1</a>@elseif(Auth::user()->notifics()->where('data_type', 2)->first()->exists()) <a href="#"> number 2</a>@endif@endforeach
2 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
这个答案是根据反馈更新的。代码应该是:
@foreach(auth()->user()->notifics as $notification)
@if($notification->data_type==1)
<a href="#"> number 1</a>
@elseif($notification->data_type==2)
<a href="#"> number 2</a>
@endif
@endforeach
当您尝试遍历用户的通知时,在每个循环中,您应该使用 直接检查通知的属性$notification->data_type。
在您之前的代码中,您不断检查用户是否在每个循环中都有某种通知。因此,如果用户具有两种类型的通知并且他有 2 条通知记录,它将显示它们两次。我很高兴这有帮助,干杯!
陪伴而非守候
TA贡献1757条经验 获得超8个赞
你只需要改变你的 if 语句。不要让你的代码复杂。有时代码实际上比我们期望的更容易:p
$notification->data_type==1
$notification->data_type==2
您只需要直接通过 if 和 ifelse 语句中的这些更改直接访问属性。
- 2 回答
- 0 关注
- 152 浏览
添加回答
举报
0/150
提交
取消