You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.1KB

  1. <?php
  2. namespace Lc\CaracoleBundle\Repository\User;
  3. use Knp\Component\Pager\PaginatorInterface;
  4. use Lc\SovBundle\Repository\AbstractRepositoryQuery;
  5. class VisitorRepositoryQuery extends AbstractRepositoryQuery
  6. {
  7. public function __construct(VisitorRepository $repository, PaginatorInterface $paginator)
  8. {
  9. parent::__construct($repository, 'visitor', $paginator);
  10. }
  11. public function filterByCookie(string $cookie = null)
  12. {
  13. if(is_null($cookie)) {
  14. return $this->andWhere('.cookie IS NULL');
  15. }
  16. else {
  17. return $this
  18. ->andWhere('.cookie LIKE :cookie')
  19. ->setParameter('cookie', $cookie);
  20. }
  21. }
  22. public function filterByLastAccess(\DateTime $lastAccess)
  23. {
  24. return $this
  25. ->andWhere('.lastAccess < :lastAccess')
  26. ->setParameter('lastAccess', $lastAccess);
  27. }
  28. public function filterByTotalVisit(int $totalVisit)
  29. {
  30. return $this
  31. ->andWhere('.totalVisit = :totalVisit')
  32. ->setParameter('totalVisit', $totalVisit);
  33. }
  34. }