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

Laravel中统计排除当前用户名称的未读通知数量

Laravel统计排除当前用户的未读通知数量

嘿,我来帮你搞定这个问题~你之前的写法问题出在对关联关系的调用方式上,auth()->user()->unreadNotifications是一个Eloquent关联查询实例,不能直接用::where这种静态调用方式,得用链式的查询方法来过滤条件。

要实现“统计name字段不等于当前登录用户名称的未读通知数”,有两种常用的写法:

方法1:使用!=操作符

直接在关联查询后链式调用where方法,指定不等于的条件:

$numberOfNotifications = auth()->user()->unreadNotifications
    ->where('name', '!=', auth()->user()->name)
    ->count();

方法2:使用whereNot方法(更语义化)

Laravel提供了whereNot方法,让条件表达更直观易读:

$numberOfNotifications = auth()->user()->unreadNotifications
    ->whereNot('name', auth()->user()->name)
    ->count();

小提示

  • 两种写法效果完全一致,选你觉得更顺手的就行。
  • 如果你的业务场景需要兼容未登录状态,可以提前加个auth()->check()判断,避免因用户未登录导致的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:18:26