skip to Main Content

I want to make query that if i have no date into request so otherwise data should be shown of current date please help me thanks.

Controller

          VehicleTask::where('vehicle_id', $this->driver)
            ->whereDate('date', Carbon::now()->format('Y-m-d'))
            ->orWhere('date',$request->date)
            ->get()

2

Answers


  1. You can use

    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();
    

    Or

    $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();
    
    Login or Signup to reply.
  2. Minimize Version

    $date = $request->date ?? Carbon::now()->format('Y-m-d');
    VehicleTask::where('vehicle_id', $this->driver)
                ->whereDate('date', $date)
                ->get();
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search