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

如何单行检查Laravel Collection集合的指定键值是否存在?

Laravel Collection 键值对存在性单行校验方案

你不需要自定义existInCollection方法,Laravel 集合原生就提供了对应的能力,直接在中间件里调用即可:

  • 单键值判断直接用contains方法,写法比你预期的更简洁:
// 等价于你要实现的判断:集合中是否存在title字段值为Admin的项
if (auth()->user()->roles->contains('title', 'Admin')) {
    // 是管理员角色,放行后续请求
}
  • 如果需要同时匹配多个键值对,直接给contains传关联数组参数即可:
// 同时匹配角色名和所属守卫
if (auth()->user()->roles->contains(['title' => 'Admin', 'guard_name' => 'web'])) {
    // 校验通过逻辑
}

补充:contains方法直接返回布尔值,完全适配中间件的判断场景。如果你习惯链式写法,也可以用auth()->user()->roles->where('title', 'Admin')->isNotEmpty()实现完全相同的效果,两种写法性能没有差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 17:36:18