【问题标题】:Multiple Where condition in laravel 5.8 not workinglaravel 5.8中的多个Where条件不起作用
【发布时间】: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();

【问题讨论】:

标签: laravel laravel-5.8


【解决方案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 fromdate to

我认为你可以使用 whereBetween 来过滤日期:

$data=add_items::where('item_name', $request->iname)
               ->orWhereBetween('date',[$request->datef, $request->datet]);
               ->get();

【讨论】:

  • @guzu do 你的意思是你想要item_namedatefdatet之间的日期,或者你想要item_name或者datefdatet之间的日期?
  • 第二个选项
猜你喜欢
  • 2022-01-04
  • 2013-12-31
  • 2017-11-26
  • 2020-01-17
  • 2020-12-13
  • 1970-01-01
  • 2020-02-19
  • 2020-12-14
  • 2013-08-30
相关资源
最近更新 更多