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

Laravel的Where查询如何处理可选参数,识别传入值与运算符?

Laravel Where方法双参数识别逻辑

Laravel查询构造器的where方法内部会优先对入参做预处理调整,核心处理逻辑如下:

  • 当你传入2个参数调用where('id', 2)时,对应方法定义的入参初始取值为:
    • $column = 'id'
    • $operator = 2
    • $value = null
    • $boolean = 'and'
  • 方法内部首先会判断$value是否为null,如果满足条件就会自动调整参数映射:
    • 把原本赋值给$operator的第二个传入参数(即示例中的2)设置为查询值$value
    • 给运算符$operator默认赋值为=
  • 调整后的最终参数等价于where('id', '=', 2),和完整三参数调用的效果完全一致。

对应的核心源码处理逻辑简化后如下:

if (is_null($value)) {
    $value = $operator;
    $operator = '=';
}

补充说明:如果需要使用不等于、大于等其他运算符,必须传入第三个查询值参数,此时$value不为空,就不会触发上述参数调整逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:24:02