<?php
namespace App\Repository;
use App\Entity\SearchEngine;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @method SearchEngine|null find($id, $lockMode = null, $lockVersion = null)
* @method SearchEngine|null findOneBy(array $criteria, array $orderBy = null)
* @method SearchEngine[] findAll()
* @method SearchEngine[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class SearchEngineRepository extends AppRepository
{
public $class = SearchEngine::class;
public function getCount($params = [])
{
$query = $this
->createQueryBuilder('se')
->select('COUNT(se.id) AS count');
if (!empty($params)) {
foreach ($params as $k => $v) {
if (!empty($v)) {
$query
->andWhere("se.$k LIKE :$k")
->setParameter($k, "%$v%");
}
}
}
return $query
->getQuery()
->getSingleScalarResult();
}
public function getPaginated($page, $limit, $params = [])
{
$start = ($page * $limit) - $limit;
$query = $this
->createQueryBuilder('se');
if (!empty($params)) {
foreach ($params as $k => $v) {
if (!empty($v)) {
$query
->andWhere("se.$k LIKE :$k")
->setParameter($k, "%$v%");
}
}
}
return $query
->setFirstResult($start)
->setMaxResults($limit)
->getQuery()
->getResult();
}
// /**
// * @return SearchEngine[] Returns an array of SearchEngine objects
// */
/*
public function findByExampleField($value)
{
return $this->createQueryBuilder('s')
->andWhere('s.exampleField = :val')
->setParameter('val', $value)
->orderBy('s.id', 'ASC')
->setMaxResults(10)
->getQuery()
->getResult()
;
}
*/
/*
public function findOneBySomeField($value): ?SearchEngine
{
return $this->createQueryBuilder('s')
->andWhere('s.exampleField = :val')
->setParameter('val', $value)
->getQuery()
->getOneOrNullResult()
;
}
*/
}