mirror of
https://github.com/shlinkio/shlink.git
synced 2025-02-25 18:45:27 -06:00
Hardcoded types on date fields when filtering visits lists
This commit is contained in:
@@ -7,6 +7,7 @@ namespace Shlinkio\Shlink\Core\Repository;
|
|||||||
use Doctrine\ORM\EntityRepository;
|
use Doctrine\ORM\EntityRepository;
|
||||||
use Doctrine\ORM\Query\ResultSetMappingBuilder;
|
use Doctrine\ORM\Query\ResultSetMappingBuilder;
|
||||||
use Doctrine\ORM\QueryBuilder;
|
use Doctrine\ORM\QueryBuilder;
|
||||||
|
use Shlinkio\Shlink\Common\Doctrine\Type\ChronosDateTimeType;
|
||||||
use Shlinkio\Shlink\Common\Util\DateRange;
|
use Shlinkio\Shlink\Common\Util\DateRange;
|
||||||
use Shlinkio\Shlink\Core\Entity\ShortUrl;
|
use Shlinkio\Shlink\Core\Entity\ShortUrl;
|
||||||
use Shlinkio\Shlink\Core\Entity\Visit;
|
use Shlinkio\Shlink\Core\Entity\Visit;
|
||||||
@@ -123,7 +124,7 @@ class VisitRepository extends EntityRepository implements VisitRepositoryInterfa
|
|||||||
$nativeQb = $this->getEntityManager()->getConnection()->createQueryBuilder();
|
$nativeQb = $this->getEntityManager()->getConnection()->createQueryBuilder();
|
||||||
$nativeQb->select('v.*', 'vl.*')
|
$nativeQb->select('v.*', 'vl.*')
|
||||||
->from('visits', 'v')
|
->from('visits', 'v')
|
||||||
->join('v', '(' . $subQuery . ')', 'o', $nativeQb->expr()->eq('o.id_0', 'v.id'))
|
->join('v', '(' . $subQuery . ')', 'sq', $nativeQb->expr()->eq('sq.id_0', 'v.id'))
|
||||||
->leftJoin('v', 'visit_locations', 'vl', $nativeQb->expr()->eq('v.visit_location_id', 'vl.id'))
|
->leftJoin('v', 'visit_locations', 'vl', $nativeQb->expr()->eq('v.visit_location_id', 'vl.id'))
|
||||||
->orderBy('v.id', 'DESC');
|
->orderBy('v.id', 'DESC');
|
||||||
|
|
||||||
@@ -164,11 +165,11 @@ class VisitRepository extends EntityRepository implements VisitRepositoryInterfa
|
|||||||
// Apply date range filtering
|
// Apply date range filtering
|
||||||
if ($dateRange !== null && $dateRange->getStartDate() !== null) {
|
if ($dateRange !== null && $dateRange->getStartDate() !== null) {
|
||||||
$qb->andWhere($qb->expr()->gte('v.date', ':startDate'))
|
$qb->andWhere($qb->expr()->gte('v.date', ':startDate'))
|
||||||
->setParameter('startDate', $dateRange->getStartDate());
|
->setParameter('startDate', $dateRange->getStartDate(), ChronosDateTimeType::CHRONOS_DATETIME);
|
||||||
}
|
}
|
||||||
if ($dateRange !== null && $dateRange->getEndDate() !== null) {
|
if ($dateRange !== null && $dateRange->getEndDate() !== null) {
|
||||||
$qb->andWhere($qb->expr()->lte('v.date', ':endDate'))
|
$qb->andWhere($qb->expr()->lte('v.date', ':endDate'))
|
||||||
->setParameter('endDate', $dateRange->getEndDate());
|
->setParameter('endDate', $dateRange->getEndDate(), ChronosDateTimeType::CHRONOS_DATETIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
return [$qb, $shortUrl];
|
return [$qb, $shortUrl];
|
||||||
|
|||||||
Reference in New Issue
Block a user