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

Laravel 8查询多用户ID关联邮箱仅返回首个ID结果问题如何解决

问题原因

Laravel 查询构造器的where()方法仅支持单值匹配场景,当你传入包含多个用户ID的数组作为匹配值时,方法只会取数组的第一个元素做匹配,因此最终返回结果仅包含第一个ID对应的邮箱。

修复方案

将查询语句中的where()替换为专门用于数组范围匹配的whereIn()方法即可,同时建议补充参数校验逻辑避免非法参数引发的查询异常,修改后代码如下:

public function ActionUserPush(Request $request)
{
    // 校验入参格式
    $request->validate([
        'user_id' => 'required|array',
        'user_id.*' => 'integer'
    ]);
    
    $userIds = $request->user_id;
    $value = DB::table('users')->whereIn('id', $userIds)->pluck('email');
    dd($value);
}

补充说明

如果你的users表开启了Laravel软删除功能,需要在查询链中增加->whereNull('deleted_at')过滤已软删除的用户数据,避免返回无效结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:39:05