Skip to content
This repository was archived by the owner on Feb 4, 2023. It is now read-only.

Commit c17c356

Browse files
Forgotten $parameterCounter++; leads to overwriting parameters when using DateRangeFilter
1 parent c5133d6 commit c17c356

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

Datatable/Filter/AbstractFilter.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ protected function getExpression(Composite $expr, QueryBuilder $qb, $searchType,
373373
case 'decimal':
374374
case 'float':
375375
if (is_numeric($searchValue)) {
376-
$searchValue = floatval($searchValue);
376+
$searchValue = (float) $searchValue;
377377
} else {
378378
$incompatibleTypeOfField = true;
379379
}
@@ -382,8 +382,8 @@ protected function getExpression(Composite $expr, QueryBuilder $qb, $searchType,
382382
case 'bigint':
383383
case 'smallint':
384384
case 'boolean':
385-
if ($searchValue == strval(intval($searchValue))) {
386-
$searchValue = intval($searchValue);
385+
if ( $searchValue == (string) (int) $searchValue ) {
386+
$searchValue = (int) $searchValue;
387387
} else {
388388
$incompatibleTypeOfField = true;
389389
}
@@ -465,6 +465,8 @@ protected function getExpression(Composite $expr, QueryBuilder $qb, $searchType,
465465
*/
466466
protected function getBetweenAndExpression(Andx $andExpr, QueryBuilder $qb, $searchField, $from, $to, $parameterCounter)
467467
{
468+
$parameterCounter++;
469+
468470
$k = $parameterCounter + 1;
469471
$andExpr->add($qb->expr()->between($searchField, '?'.$parameterCounter, '?'.$k));
470472
$qb->setParameter($parameterCounter, $from);

Datatable/Filter/DateRangeFilter.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ public function addAndExpression(Andx $andExpr, QueryBuilder $qb, $searchField,
4545
$dateEnd = new DateTime($_dateEnd);
4646
$dateEnd->setTime(23, 59, 59);
4747

48-
$parameterCounter += 1;
4948
$andExpr = $this->getBetweenAndExpression($andExpr, $qb, $searchField, $dateStart->format('Y-m-d H:i:s'), $dateEnd->format('Y-m-d H:i:s'), $parameterCounter);
5049
$parameterCounter += 2;
5150

0 commit comments

Comments
 (0)