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

Laravel查询Course表指定userId记录后筛选对应id返回null如何解决

错误原因

pluck('id') 方法会从查询结果中提取所有id的数值,返回的是仅含id值的一维集合,集合元素没有id键名,后续调用where('id', $id)无法匹配到对应数据,因此返回null。

解决方案
  • 方案1(最推荐,性能最优):直接合并两个查询条件,数据库层面一次性过滤出结果
$data = Course::where('userId', $userId)->where('id', $id)->first();
dd($data);
  • 方案2(需要先获取全部userId匹配的记录再二次筛选时使用):不用pluck,先拿完整记录集合再过滤
// 先取出所有userId匹配的完整课程记录
$courses = Course::where('userId', $userId)->get();
// 再从集合中筛选id匹配的单条记录
$data = $courses->where('id', $id)->first();
dd($data);
  • 方案3(仅需判断id是否属于对应用户的课程时使用):直接用集合的contains方法判断
$courseIdList = Course::where('userId', $userId)->pluck('id');
$idIsValid = $courseIdList->contains($id);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:09:03