Can you please help me with creating a custom filter?
I wants to filter multiple date columns using orWhereDate in a single filter. I tried by myown but it seems filtering only first condition. Below is my code. Thanks in advance.
namespace App\Nova\Filters;
use Illuminate\Support\Carbon;
use Laravel\Nova\Filters\DateFilter;
use Laravel\Nova\Http\Requests\NovaRequest;
class TodayTasksFilter extends DateFilter
{
/**
* Apply the filter to the given query.
*
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @param \Illuminate\Database\Eloquent\Builder $query
* @param mixed $value
* @return \Illuminate\Database\Eloquent\Builder
*/
public function apply(NovaRequest $request, $query, $value)
{
$value = Carbon::parse($value);
return $query->whereDate('pickup_date',$value)->orWhereDate('delivery_date',$value);
}
}
@Sinnbeck thanks buddy but it's not working for me first it was returning the data for the first condition but now it returns no data.
I think the issue is with my index query as when I remove the conditions there it works but I need those condition to be set on indexQuery as well of my resource.
public static function indexQuery(NovaRequest $request, $query)
{
return $query->where(fn($query) => $query->whereDate('pickup_date', Carbon::today())->orWhereDate('delivery_date',Carbon::today()));
}