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

Laravel如何一次性获取user_enabled_notifications表的全部id列值

问题解决方法

报错原因说明

UserEnabledNotifications::all() 返回的是 Illuminate\Database\Eloquent\Collection 集合实例,既不是普通数组也不是单条模型对象:

  • 执行 dump($notificationData['id']) 报错:集合本身没有顶层的 id 数组下标
  • 执行 dump($notificationData->id) 报错:集合对象本身没有定义 id 属性,id 是集合内每条单模型实例的属性
  • 执行 dump($notificationData[0]['id']) 仅能返回单条数据的id:是因为你仅访问了集合下标为0的单条模型数据的id

正确实现方案

方案1:基于已查询到的集合提取所有id

直接调用集合内置的pluck方法提取指定字段的所有值:

// 提取所有id组成集合,如需转普通数组可追加->toArray()
$ids = $notificationData->pluck('id');
// 转普通数组写法
$ids = $notificationData->pluck('id')->toArray();

最终得到的结果就是包含所有id的结构:[1,2]

方案2:查询阶段直接提取id(性能更优)

如果你的业务场景只需要id字段,不需要查询表内其他字段,可以直接在查询阶段调用pluck,避免全表查询浪费性能:

// 直接查询得到所有id的集合,转数组追加->toArray()即可
$ids = UserEnabledNotifications::pluck('id');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:36:03