src/Repository/ConfigRepository.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\Config;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. use  App\Utils\CustomPaginator;
  7. /**
  8.  * @method Config|null find($id, $lockMode = null, $lockVersion = null)
  9.  * @method Config|null findOneBy(array $criteria, array $orderBy = null)
  10.  * @method Config[]    findAll()
  11.  * @method Config[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  12.  */
  13. class ConfigRepository extends ServiceEntityRepository
  14. {
  15.     public function __construct(ManagerRegistry $registry)
  16.     {
  17.         parent::__construct($registryConfig::class);
  18.     }
  19.     public function getAllConfig($data$currentPage 1$limit 12$sort$order)
  20.     {
  21.         $parameters = array();
  22.         $query $this->createQueryBuilder('Config');
  23.        
  24.         if(isset($data['value']) && $data['value'] != ""){
  25.             $query->andWhere('(
  26.                 Config.keyName like :where1 or
  27.                 Config.value like :where1
  28.             )');
  29.             $parameters[':where1'] = "%".$data['value']."%";
  30.         }
  31.         if(!empty($parameters)){
  32.             $query->setParameters($parameters);
  33.         }
  34.         $query->addOrderBy($sort$order);
  35.         $query->getQuery();
  36.         
  37.         //dd($query->getQuery()->getResult());
  38.         $paginator  = new CustomPaginator($query);
  39.         $result     $paginator->paginate($currentPage$limit);
  40.         
  41.         if($result['count'] > && $result['maxPages'] < $result['thisPage']){
  42.             $result $paginator->paginate(1$limit);
  43.         }
  44.         
  45.         return $result;
  46.     }
  47.     public function getValueOrCreate(string $key$default null): ?string
  48.     {
  49.         $result $this->findOneBy(['keyName' => $key]);
  50.         if($result){
  51.             return $result->getValue();
  52.         }
  53.         if($default === null){
  54.             return null;
  55.         }
  56.         $confg = (new Config)
  57.             ->setKeyName($key)
  58.             ->setValue($default)
  59.         ;
  60.         try{
  61.             $this->_em->persist($confg);
  62.             $this->_em->flush();
  63.             return $default;
  64.         }catch(\Exception $ex){
  65.             return null;
  66.         }
  67.     }
  68.     // /**
  69.     //  * @return Config[] Returns an array of Config objects
  70.     //  */
  71.     /*
  72.     public function findByExampleField($value)
  73.     {
  74.         return $this->createQueryBuilder('c')
  75.             ->andWhere('c.exampleField = :val')
  76.             ->setParameter('val', $value)
  77.             ->orderBy('c.id', 'ASC')
  78.             ->setMaxResults(10)
  79.             ->getQuery()
  80.             ->getResult()
  81.         ;
  82.     }
  83.     */
  84.     /*
  85.     public function findOneBySomeField($value): ?Config
  86.     {
  87.         return $this->createQueryBuilder('c')
  88.             ->andWhere('c.exampleField = :val')
  89.             ->setParameter('val', $value)
  90.             ->getQuery()
  91.             ->getOneOrNullResult()
  92.         ;
  93.     }
  94.     */
  95. }