/** * @param \Doctrine\ORM\Query|\Doctrine\ORM\QueryBuilder $query * @param array $array * @param string $contiene * @return \Doctrine\ORM\Query|\Doctrine\ORM\QueryBuilder */ public function consultaContiene($query, $array, $contiene) { if ($contiene != "") { $fields = array_keys($this->getClassMetadata()->fieldNames); $alias = $query->getRootAlias(); $count = 0; foreach ($array as $field) { $fieldMapping = $this->getClassMetadata()->getFieldForColumn($field); $where = sprintf("UPPER(%s.%s) LIKE :condicion", $alias, $fieldMapping); if ($count == 0) { $query->andWhere($where); } else { $query->orWhere($where); } $count++; } $query->setParameter("condicion", "%" . strtoupper($contiene) . "%"); } return $query; }