我想查询,如果我没有进入请求日期,否则数据应显示当前日期,请帮助我谢谢。
VehicleTask::where('vehicle_id', $this->driver) ->whereDate('date', Carbon::now()->format('Y-m-d')) ->orWhere('date',$request->date) ->get()
w80xi6nr1#
最小化版本
$date = $request->date ?? Carbon::now()->format('Y-m-d'); VehicleTask::where('vehicle_id', $this->driver) ->whereDate('date', $date) ->get();
zyfwsgd62#
您可以使用
VehicleTask::where('vehicle_id', $this->driver) ->when($request->has('date'), function ($query) use ($request) { return $query->whereDate('date', $request->date); }, function ($query) { return $query->whereDate('date', today()); }) ->get();
或者
$date = now(); # or Date('Y-m-d H:i:s'); if ($request->has('date')) { $date = $request->date; } VehicleTask::where('vehicle_id', $this->driver) ->whereDate('date', Carbon::now()->format('Y-m-d')) ->orWhere('date', $date) ->get();
7tofc5zh3#
要实现所需的行为,可以使用Laravel的when()方法,根据$request->date是否存在,有条件地添加whereDate()子句。
when()
$request->date
whereDate()
VehicleTask::where('vehicle_id', $this->driver) ->when($request->has('date'), function ($query) use ($request) { return $query->whereDate('date', $request->date); }, function ($query) { return $query->whereDate('date', Carbon::now()->format('Y-m-d')); }) ->get();
has()
Carbon::now()
因此,上面的代码检查$request->date是否存在,如果存在,则添加whereDate()子句和$request->date值,否则添加whereDate()子句和当前日期。希望这有帮助!
3条答案
按热度按时间w80xi6nr1#
最小化版本
zyfwsgd62#
您可以使用
或者
7tofc5zh3#
要实现所需的行为,可以使用Laravel的
when()
方法,根据$request->date
是否存在,有条件地添加whereDate()
子句。has()
方法检查$request->date
是否存在。whereDate()
子句和$request->date
值。whereDate()
子句,并使用Carbon::now()
方法添加当前日期。因此,上面的代码检查
$request->date
是否存在,如果存在,则添加whereDate()
子句和$request->date
值,否则添加whereDate()
子句和当前日期。希望这有帮助!