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

Laravel Eloquent如何在单个WHERE子句中使用AND逻辑

Laravel Eloquent 多条件WHERE子句写法说明

你写的这种合并方式完全不可行,$request->FLA && 'Date'是错误的逻辑表达式,会把请求参数和字符串做布尔运算,导致传递给where的参数完全不符合要求,直接运行会报错。

如果想把两个AND条件合并到单个where方法调用里,正确的写法是使用数组参数:

Query1::where([
    ['Course_ID', '=', $request->FLA],
    ['Date', '=', Carbon::today()]
])->get();

这种写法生成的SQL和你原来链式调用where的效果完全一致,最终SQL会是WHERE Course_ID = ? AND Date = ?,默认就是AND逻辑连接多个条件。

另外补充:你最初的链式where写法本身是合法且正确的,如果你只是单纯想减少方法调用次数,数组形式是最优解。如果后续需要处理更复杂的条件分组(比如混合AND/OR逻辑),可以用闭包形式:

Query1::where(function ($query) use ($request) {
    $query->where('Course_ID', '=', $request->FLA)
          ->where('Date', '=', Carbon::today());
})->get();

不过这种写法在你的简单AND场景下,和数组、链式写法的效果完全相同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 00:43:14