コード例 #1
0
 /**
  * @author Franlin Rivero Grcia <*****@*****.**>
  * @param EntityManager $em
  * @param string $class
  * @param array $filters Arreglo asociativo campo => valor
  * @param array $foreignFilters Arreglo asociativo asociationName.campo => valor
  * @param ResultType $resultType
  * @param type $order
  * @param type $page
  * @return array
  */
 public static function filterRecordsTableWithAsociations(EntityManager $em, $class, $filters = array(), $order = null, $resultType = ResultType::ObjectType, $page = null)
 {
     $meta = $em->getClassMetadata($class);
     //$fields = $meta->getFieldNames();
     $asocnames = $meta->getAssociationNames();
     $alias = UtilRepository2::createAlias($class);
     $qb = $em->createQueryBuilder()->select($alias)->from($class, $alias);
     $i = 0;
     foreach ($asocnames as $asocname) {
         $qb->addSelect($asocname);
         $join = UtilRepository2Config::$defaultJoinType;
         $qb->{$join}("{$alias}.{$asocname}", $asocname);
     }
     $fields = $meta->getFieldNames();
     UtilRepository2::fieldFilter($alias, $filters, $fields, $asocnames, $meta, $qb);
     UtilRepository2::putOrder($alias, $fields, $order, $qb);
     //       echo $qb->getQuery()->getSQL();die;
     return UtilRepository2::doResult($qb, $resultType, $alias);
 }