Advertisement
Guest User

Untitled

a guest
Dec 29th, 2013
15
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.27 KB | None | 0 0
  1. <?php
  2. // src/Acme/EntityBundle/Entity/FileTextRepository.php
  3. namespace Acme\EntityBundle\Entity;
  4.  
  5. use Doctrine\ORM\EntityRepository;
  6.  
  7. class FileTextRepository extends EntityRepository
  8. {
  9.    
  10.     public function getCount() {
  11.         $query = $this->createQueryBuilder('f')
  12.                 ->select('COUNT(f.id)')
  13.                 ->getQuery();
  14.         $total = $query->getSingleScalarResult();
  15.         return $total;
  16.     }
  17.  
  18.     public function findAllByDate()
  19.      {
  20.         $q =
  21.         $this->createQueryBuilder('p')
  22.         ->orderBy('p.date', 'DESC')
  23.         ->getQuery()        
  24.         ->getResult();
  25.         return $q;
  26.      }
  27.      
  28.      public function findImagesByDate()
  29.       {
  30.         $criteria = Array();
  31.         $criteria['type'] = 'jpg';
  32.         $criteria['type'] = 'png';
  33.         $criteria['type'] = 'gif';
  34.         $criteria['type'] = 'jpeg';
  35.         $searchCriteria = $this->searchCriteria($criteria, 'p');
  36.  
  37.         $q =
  38.         $this->createQueryBuilder('p')
  39.         ->orderBy('p.date', 'DESC')
  40.         ->where($searchCriteria['where'])
  41.         ->setParameters($searchCriteria['parameters'])
  42.         ->getQuery()
  43.         ->getResult();
  44.         return $q;
  45.      }  
  46.      
  47.           public function findImagesByDateQuery()
  48.       {
  49.         $criteria = Array();
  50.         $criteria['type'] = 'jpg';
  51.         $criteria['type'] = 'png';
  52.         $criteria['type'] = 'gif';
  53.         $criteria['type'] = 'jpeg';
  54.         $searchCriteria = $this->searchCriteriaArray($criteria, 'p');
  55.        
  56.         $where = $searchCriteria['where'];
  57.  
  58.         foreach($where as $key => $value)
  59.         {
  60.             $whereParse = "WHERE p.$key = :$key OR";
  61.         }
  62.         $whereParse = substr($whereParse, 0, strlen($whereParse)-2);
  63.        
  64.         $query = $this->getEntityManager()->createQuery(
  65.                 'SELECT p
  66.                FROM AcmeEntityBundle:FileText p
  67.                '.$whereParse.'
  68.                ORDER BY p.date ASC'
  69.                 )->setParameters($searchCriteria['parameters']);
  70.        
  71.         return $query;
  72.      }  
  73.    
  74.  
  75. //    public function findImagesByDate() {
  76. //        return $this->findImagesByDateQuery()->getResult();
  77. //    }
  78.      
  79.      function searchCriteria($criteria, $entityAlias){
  80.            
  81.             $cleanCritera = array();
  82.             foreach($criteria as $key => $value){
  83.                 if( isset( $this->_class->fieldNames[$key] ) && !empty($value) ){
  84.                     $cleanCritera[$key] = $value;
  85.                 }                
  86.             }
  87.             if(empty($cleanCritera)){
  88.                 return null;
  89.             }
  90.             $queryBuilder = $this->_em->createQueryBuilder();
  91.             /**
  92.              *@note example of partial requests, loads up a graph of Student proxies, if you ask for a field outside of the select
  93.              *criteria, Doctrine2 will make a SQL query for that specific entity.
  94.              */
  95.             $or = $queryBuilder->expr()->andx();
  96.             /**
  97.              *@note Example of programmatic Doctrine2 Like expression
  98.              */
  99.             foreach($cleanCritera as $key => $value){
  100.                 $or->add($queryBuilder->expr()->like("{$entityAlias}.{$key}", ":{$key}" ));    
  101.                 $parameters[$key] = $value;
  102. //                $queryBuilder->setParameter($key, "%{$value}%");
  103.             }
  104.  
  105.             $return['where'] = $or;
  106.             $return['parameters'] = $parameters;
  107.             return $return;    
  108.         }
  109.        
  110.        
  111.        
  112.        
  113.         // ulozi kriteria do pole
  114.         function searchCriteriaArray($criteria, $entityAlias){
  115.            
  116.             $cleanCritera = array();
  117.             foreach($criteria as $key => $value){
  118.                 if( isset( $this->_class->fieldNames[$key] ) && !empty($value) ){
  119.                     $cleanCritera[$key] = $value;
  120.                 }                
  121.             }
  122.             if(empty($cleanCritera)){
  123.                 return null;
  124.             }
  125.            
  126.             foreach($cleanCritera as $key => $value){
  127.                 $or[$key] = $value;
  128.                 $parameters[$key] = $value;
  129.             }
  130.  
  131.             $return['where'] = $or;
  132.             $return['parameters'] = $parameters;
  133.             return $return;    
  134.         }
  135.      
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement