Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // src/Acme/EntityBundle/Entity/FileTextRepository.php
- namespace Acme\EntityBundle\Entity;
- use Doctrine\ORM\EntityRepository;
- class FileTextRepository extends EntityRepository
- {
- public function getCount() {
- $query = $this->createQueryBuilder('f')
- ->select('COUNT(f.id)')
- ->getQuery();
- $total = $query->getSingleScalarResult();
- return $total;
- }
- public function findAllByDate()
- {
- $q =
- $this->createQueryBuilder('p')
- ->orderBy('p.date', 'DESC')
- ->getQuery()
- ->getResult();
- return $q;
- }
- public function findImagesByDate()
- {
- $criteria = Array();
- $criteria['type'] = 'jpg';
- $criteria['type'] = 'png';
- $criteria['type'] = 'gif';
- $criteria['type'] = 'jpeg';
- $searchCriteria = $this->searchCriteria($criteria, 'p');
- $q =
- $this->createQueryBuilder('p')
- ->orderBy('p.date', 'DESC')
- ->where($searchCriteria['where'])
- ->setParameters($searchCriteria['parameters'])
- ->getQuery()
- ->getResult();
- return $q;
- }
- public function findImagesByDateQuery()
- {
- $criteria = Array();
- $criteria['type'] = 'jpg';
- $criteria['type'] = 'png';
- $criteria['type'] = 'gif';
- $criteria['type'] = 'jpeg';
- $searchCriteria = $this->searchCriteriaArray($criteria, 'p');
- $where = $searchCriteria['where'];
- foreach($where as $key => $value)
- {
- $whereParse = "WHERE p.$key = :$key OR";
- }
- $whereParse = substr($whereParse, 0, strlen($whereParse)-2);
- $query = $this->getEntityManager()->createQuery(
- 'SELECT p
- FROM AcmeEntityBundle:FileText p
- '.$whereParse.'
- ORDER BY p.date ASC'
- )->setParameters($searchCriteria['parameters']);
- return $query;
- }
- // public function findImagesByDate() {
- // return $this->findImagesByDateQuery()->getResult();
- // }
- function searchCriteria($criteria, $entityAlias){
- $cleanCritera = array();
- foreach($criteria as $key => $value){
- if( isset( $this->_class->fieldNames[$key] ) && !empty($value) ){
- $cleanCritera[$key] = $value;
- }
- }
- if(empty($cleanCritera)){
- return null;
- }
- $queryBuilder = $this->_em->createQueryBuilder();
- /**
- *@note example of partial requests, loads up a graph of Student proxies, if you ask for a field outside of the select
- *criteria, Doctrine2 will make a SQL query for that specific entity.
- */
- $or = $queryBuilder->expr()->andx();
- /**
- *@note Example of programmatic Doctrine2 Like expression
- */
- foreach($cleanCritera as $key => $value){
- $or->add($queryBuilder->expr()->like("{$entityAlias}.{$key}", ":{$key}" ));
- $parameters[$key] = $value;
- // $queryBuilder->setParameter($key, "%{$value}%");
- }
- $return['where'] = $or;
- $return['parameters'] = $parameters;
- return $return;
- }
- // ulozi kriteria do pole
- function searchCriteriaArray($criteria, $entityAlias){
- $cleanCritera = array();
- foreach($criteria as $key => $value){
- if( isset( $this->_class->fieldNames[$key] ) && !empty($value) ){
- $cleanCritera[$key] = $value;
- }
- }
- if(empty($cleanCritera)){
- return null;
- }
- foreach($cleanCritera as $key => $value){
- $or[$key] = $value;
- $parameters[$key] = $value;
- }
- $return['where'] = $or;
- $return['parameters'] = $parameters;
- return $return;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement