コード例 #1
0
 /**
  * NO USAR, ESTO NO SE DBE USAR
  *
  * @deprecated since version 2
  * @author Franlin Rivero Grcia <*****@*****.**>
  * @param EntityManager $em
  * @param QueryBuilder $qb
  * @param array $filters Arreglo asociativo campo => valor
  * @param ResultType $resultType
  * @param type $order
  * @param type $page
  * @return array
  */
 public static function filterRecordsQueryString(EntityManager $em, $dql, $filters = array(), $order = null, $resultType = ResultType::ArrayType, $page = null)
 {
     $op = UtilRepository2Config::$defaultQueryStringCompareOperator;
     $query = $dql;
     if (is_array($dql)) {
         $query = $dql[0];
         $query .= " " . $dql[1];
     }
     $i = 0;
     foreach ($filters as $key => $value) {
         $param = str_replace(".", '', $key);
         if ($i == 0 && !is_array($dql)) {
             if (is_array($value)) {
                 $query .= " where {$key} {$value['0']} :{$param}";
             } else {
                 $query .= " where {$key} {$op} :{$param}";
             }
         } else {
             if (is_array($value)) {
                 $query .= " and {$key} {$value['0']} :{$param}";
             } else {
                 $query .= " and {$key} {$op} :{$param}";
             }
         }
         $i++;
     }
     if ($order != null) {
         $query .= " order by {$order}";
     }
     $query = $em->createQuery($query);
     foreach ($filters as $key => $value) {
         $param = str_replace(".", '', $key);
         if (!is_array($value)) {
             if ($op == 'like') {
                 $query->setParameter($param, "%{$value}%");
             } else {
                 $query->setParameter($param, $value);
             }
         } elseif ($value[0] == 'like') {
             $query->setParameter($param, "%" . strtolower($value[1]) . "%");
         } else {
             $query->setParameter($param, $value[1]);
         }
     }
     return UtilRepository2::doQueryResult($query, $resultType);
 }