Skip to content

Commit d55ed3a

Browse files
author
Alexander Dadyka
committed
Fix: queries to criteria
1 parent d75b616 commit d55ed3a

File tree

3 files changed

+12
-15
lines changed

3 files changed

+12
-15
lines changed

app/Repositories/Criteria/WhereDateEqualCriterion.php

+4-5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use App\Models\Enums\Interfaces\ModelColumnInterface;
66
use App\Repositories\Criteria\Interfaces\CriterionInterface;
77
use Illuminate\Contracts\Database\Query\Builder;
8+
use Illuminate\Support\Carbon;
89

910
class WhereDateEqualCriterion implements CriterionInterface
1011
{
@@ -17,10 +18,8 @@ public function __construct(
1718

1819
public function apply(Builder $query): void
1920
{
20-
$query->whereRaw(
21-
"date_format(`$this->table`.`{$this->column->value}`, '%Y-%m-%d 00:00:00') = "
22-
. "str_to_date(?, '%Y-%m-%d 00:00:00')",
23-
[$this->date]
24-
);
21+
$date = Carbon::parse($this->date)->format('Y-m-d');
22+
23+
$query->whereDate("$this->table.{$this->column->value}", $date);
2524
}
2625
}

app/Repositories/Criteria/WhereDateGreaterThanOrEqualCriterion.php

+4-5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use App\Models\Enums\Interfaces\ModelColumnInterface;
66
use App\Repositories\Criteria\Interfaces\CriterionInterface;
77
use Illuminate\Contracts\Database\Query\Builder;
8+
use Illuminate\Support\Carbon;
89

910
class WhereDateGreaterThanOrEqualCriterion implements CriterionInterface
1011
{
@@ -17,10 +18,8 @@ public function __construct(
1718

1819
public function apply(Builder $query): void
1920
{
20-
$query->whereRaw(
21-
"date_format(`$this->table`.`{$this->column->value}`, '%Y-%m-%d 00:00:00') >= "
22-
. "str_to_date(?, '%Y-%m-%d 00:00:00')",
23-
[$this->date]
24-
);
21+
$date = Carbon::parse($this->date)->format('Y-m-d');
22+
23+
$query->whereDate("$this->table.{$this->column->value}", '>=', $date);
2524
}
2625
}

app/Repositories/Criteria/WhereDateLessThanOrEqualCriterion.php

+4-5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use App\Models\Enums\Interfaces\ModelColumnInterface;
66
use App\Repositories\Criteria\Interfaces\CriterionInterface;
77
use Illuminate\Contracts\Database\Query\Builder;
8+
use Illuminate\Support\Carbon;
89

910
class WhereDateLessThanOrEqualCriterion implements CriterionInterface
1011
{
@@ -17,10 +18,8 @@ public function __construct(
1718

1819
public function apply(Builder $query): void
1920
{
20-
$query->whereRaw(
21-
"date_format(`$this->table`.`{$this->column->value}`, '%Y-%m-%d 00:00:00') <= "
22-
. "str_to_date(?, '%Y-%m-%d 00:00:00')",
23-
[$this->date]
24-
);
21+
$date = Carbon::parse($this->date)->format('Y-m-d');
22+
23+
$query->whereDate("$this->table.{$this->column->value}", '<=', $date);
2524
}
2625
}

0 commit comments

Comments
 (0)