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

Laravel双关键词列查询方法及Eloquent查询结果异常排查

Laravel 查询问题解决方案

问题分析

你当前的Eloquent查询写法存在错误,导致无法正确获取符合条件的记录:

Model::where([
    'user_id' => Auth::id(),
    'status' => ['New', 'In Progress']
])->get();

在Laravel的where关联数组语法中,数组形式的条件会被当作精确匹配数组类型字段,而非你需要的“匹配数组中任意一个值”的IN查询,因此只会返回极少数(甚至没有)符合预期的记录。

正确写法(匹配两个状态中的任意一个)

如果需求是查询status为New或In Progress的记录,使用whereIn方法实现IN查询:

Model::where('user_id', Auth::id())
    ->whereIn('status', ['New', 'In Progress'])
    ->get();

正确写法(字段同时包含两个关键词)

如果需求是查询status字段同时包含两个关键词(比如字段值是包含多个状态描述的字符串),使用多条件like查询:

// 链式写法
Model::where('user_id', Auth::id())
    ->where('status', 'like', '%New%')
    ->where('status', 'like', '%In Progress%')
    ->get();

// 或者使用whereRaw简化
Model::where('user_id', Auth::id())
    ->whereRaw('status LIKE ? AND status LIKE ?', ['%New%', '%In Progress%'])
    ->get();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 15:39:21