laravel 5.8中的多个Where条件不起作用
Posted
技术标签:
【中文标题】laravel 5.8中的多个Where条件不起作用【英文标题】:Multiple Where condition in laravel 5.8 not working 【发布时间】:2020-04-22 19:15:24 【问题描述】:我正在尝试通过使用项目名称、日期、日期来获取数据
如果我正在使用
$data=add_items::select('*')->where('item_name',$request->iname)->orWhere('date',$request->datef)->orWhere('date',$request->datet)->get();
显示结果但根据项目名称显示,不显示特定日期内的结果
例如
[
"id":2,item_name":"Muesli","date":"2019-12-23",
"id":3,"item_name":"Muesli","date":"2020-12-24"
]
如果我在所有这三个条件下使用简单的 where 它不会返回任何结果
$data=add_items::select('*')->where('item_name',$request->iname)->where('date',$request->datef)->where('date',$request->datet)->get();
【问题讨论】:
这能回答你的问题吗? How to query between two dates using Laravel and Eloquent? 不,这不是。 【参考方案1】:你应该使用:
$data=add_items::select('*')->where(function($q) use ($request)
$q->where('item_name',$request->iname)
->orWhere('date',$request->datef)
->orWhere('date',$request->datet);
)->get();
阅读parameter grouping了解详情。
【讨论】:
"未定义变量:q"【参考方案2】:看来你需要过滤项目名称,date from
,date to
我认为你可以使用 whereBetween 来过滤日期:
$data=add_items::where('item_name', $request->iname)
->orWhereBetween('date',[$request->datef, $request->datet]);
->get();
【讨论】:
@guzu do 你的意思是你想要item_name
和datef
和datet
之间的日期,或者你想要item_name
或者datef
和datet
之间的日期?
第二个选项以上是关于laravel 5.8中的多个Where条件不起作用的主要内容,如果未能解决你的问题,请参考以下文章