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

Laravel Eloquent动态WHERE子句问题:数组匹配brand_id查询失败

正确实现方法

你的代码问题在于把查询方法拼接成字符串后尝试当作属性调用,这不符合Laravel查询构造器的使用逻辑。Laravel提供了更简洁高效的whereIn方法来处理字段值在数组中的查询场景,直接用这个方法就能解决问题:

$brandIds = [1, 2];
$offers = DB::table('offers')->whereIn('brand_id', $brandIds)->get();

如果一定要用循环的方式(不推荐,性能不如whereIn),可以这样写:

$brandIds = [1, 2];
$query = DB::table('offers');
foreach ($brandIds as $brandId) {
    $query->orWhere('brand_id', $brandId);
}
$offers = $query->get();

注意:循环时要用orWhere才能实现“等于数组内任意值”的逻辑,你原代码拼接的多个where会生成AND条件,这也不符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:57:00