diff --git a/src/DateRangeFilter.php b/src/DateRangeFilter.php index 9309429..5ce467d 100644 --- a/src/DateRangeFilter.php +++ b/src/DateRangeFilter.php @@ -50,13 +50,29 @@ public function __construct(string $name = 'Created at', string $column = Model: */ public function apply(Request $request, $query, $value) { - $query->whereBetween( - $this->column, - [ - Carbon::createFromFormat('Y-m-d', $value[0])->startOfDay(), - Carbon::createFromFormat('Y-m-d', $value[1])->endOfDay(), - ] - ); + $hasRelation = strpos($this->column,'.'); + if ($hasRelation) { + $rc = explode(".",$this->column); + $relation = $rc[0]; + $column = $rc[1]; + $query->whereHas($relation, function (Builder $query) use ($value, $column) { + $query->whereBetween( + $column, + [ + Carbon::createFromFormat('Y-m-d', $value[0])->startOfDay(), + Carbon::createFromFormat('Y-m-d', $value[1])->endOfDay(), + ] + ); + }); + } else { + $query->whereBetween( + $this->column, + [ + Carbon::createFromFormat('Y-m-d', $value[0])->startOfDay(), + Carbon::createFromFormat('Y-m-d', $value[1])->endOfDay(), + ] + ); + } return $query; }