Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/11/2015, 13:25
barrera1997
 
Fecha de Ingreso: octubre-2015
Mensajes: 11
Antigüedad: 9 años
Puntos: 0
Respuesta: Consulta en MongoDB tras generar un formulario con entity

Continuo con el Controlador.

Clase Controlador:

class DefaultController extends Controller
{
public function buildQueryBuilder ($request, $fechaDesde = null, $fechaHasta = null, $nombreSeccion =null, $epigrafe = null, $departamento = null, $titulo = null )
{
$qb = $this->get('doctrine_mongodb')
->getManager()
->createQueryBuilder('jbdMEBIBD2015FEBBundle:boe1', 'boe')
->select('urlPdf', 'titulo','departamento', 'item','fechaPub','NombreSeccion','epigrafe');

#Comprobamos si el usuario ha introducido la fechaDesde a buscar
if ($fechaDesde) {
$qb-> field('fecha')->gte($fechaDesde);
}

#Comprobamos si el usuario ha introducido la fechaHasta a buscar
if ($fechaHasta) {
$qb-> field('fecha')->lte($fechaHasta);
}

#Comprobamos si el usuario ha introducido el nombreSeccion a buscar
if ($nombreSeccion) {
$qb-> field('NombreSeccion')->equals($nombreSeccion);
}

#Comprobamos si el usuario ha introducido el epígrafe a buscar
if ($epigrafe) {
$qb-> field('epigrafe')->equals($epigrafe);
}

#Comprobamos si el usuario ha introducido el departamento a buscar
if ($departamento) {
$qb-> field('departamento')->equals($departamento);
}

#Comprobamos si el usuario ha introducido el titulo a buscar
if ($titulo) {
$titulo_remove=$this->removeCommonWords($titulo);
$palabras = explode(" ", $titulo_remove);

$buscar=null; #Inicializamos la variable
foreach ($palabras as &$palabra) {
if ($palabra) {
if ($buscar) {
$buscar= $buscar."|".$palabra;
}
else {
$buscar= $palabra;
}
}
print_r($buscar);
}

$qb->field('titulo')->equals(new \MongoRegex('/'.$buscar.'/iu'));

}
$query = $qb->getQuery();
return $query;
#Paginamos la salida de la query
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate($query, $request->query->getInt('page', 1), 20);
/* @var $pagination SlidingPagination */
#$pagination ->setUsedRoute('resultSearchBOE');
$pagination ->setPageRange(10);

// Devolvemos el resultado de la función
#return $this->render('jbdMEBIBD2015FEBBundle:Default:resultado. html.twig', array('datos' => $pagination));
return $pagination;
}


public function removeCommonWords($input){
$commonWords = array('a','acá','ahí','ajena','ajenas','ajeno','aj enos','al','algo','algún','alguna','algunas','algu no','algunos','allá','alli','allí','ambos','amplea mos','ante','antes','aquel','aquella','aquellas',' aquello','aquellos','aqui','aquí','arriba','asi',' atras','aun','aunque','bajo','bastante','bien','ca be','cada','casi','cierta','ciertas','cierto','cie rtos','como','cómo','con','conmigo','conseguimos', 'conseguir','consigo','consigue','consiguen','cons igues','contigo','contra','cual','cuales','cualqui er','cualquiera','cualquieras','cuan','cuán','cuan do','cuanta','cuánta','cuantas','cuántas','cuanto' ,'cuánto','cuantos','cuántos','de','dejar','del',' demás','demas','demasiada','demasiadas','demasiado ','demasiados','dentro','desde','donde','dos','el' ,'él','ella','ellas','ello','ellos','empleais','em plean','emplear','empleas','empleo','en','encima', 'entonces','entre','era','eramos','eran','eras','e res','es','esa','esas','ese','eso','esos','esta',' estaba','estado','estais','estamos','estan','estar ','estas','este','esto','estos','estoy','etc','fin ','fue','fueron','fui','fuimos','gueno','ha','hace ','haceis','hacemos','hacen','hacer','haces','haci a','hago','hasta','incluso','intenta','intentais', 'intentamos','intentan','intentar','intentas','int ento','ir','jamás','junto','juntos','la','largo',' las','lo','los','mas','más','me','menos','mi','mía ','mia','mias','mientras','mio','mío','mios','mis' ,'misma','mismas','mismo','mismos','modo','mucha', 'muchas','muchísima','muchísimas','muchísimo','muc hísimos','mucho','muchos','muy','nada','ni','ningu n','ninguna','ningunas','ninguno','ningunos','no', 'nos','nosotras','nosotros','nuestra','nuestras',' nuestro','nuestros','nunca','os','otra','otras','o tro','otros','para','parecer','pero','poca','pocas ','poco','pocos','podeis','podemos','poder','podri a','podriais','podriamos','podrian','podrias','por ','por qué','porque','primero','puede','pueden','puedo',' pues','que','qué','querer','quien','quién','quiene s','quienesquiera','quienquiera','quiza','quizas', 'sabe','sabeis','sabemos','saben','saber','sabes', 'se','segun','ser','si','sí','siempre','siendo','s in','sín','sino','so','sobre','sois','solamente',' solo','somos','soy','sr','sra','sres','sta','su',' sus','suya','suyas','suyo','suyos','tal','tales',' también','tambien','tampoco','tan','tanta','tantas ','tanto','tantos','te','teneis','tenemos','tener' ,'tengo','ti','tiempo','tiene','tienen','toda','to das','todo','todos','tomar','trabaja','trabajais', 'trabajamos','trabajan','trabajar','trabajas','tra bajo','tras','tú','tu','tus','tuya','tuyo','tuyos' ,'ultimo','un','una','unas','uno','unos','usa','us ais','usamos','usan','usar','usas','uso','usted',' ustedes','va','vais','valor','vamos','van','varias ','varios','vaya','verdad','verdadera','vosotras', 'vosotros','voy','vuestra','vuestras','vuestro','v uestros','y','ya','yo');
return preg_replace('/\b('.implode('|',$commonWords).')\b/','',$input);
}
public function indexAction()
{
$entrada = 'ajenos a todos estamos JESUS BARRERA';

return $this->render('jbdMEBIBD2015FEBBundle:Default:index.html .twig', array('name' => $this->removeCommonWords($entrada)));
}

public function createAction()
{
$sumarioBOE = new sumarioBOE();
$sumarioBOE->setNombreSeccion('A Foo Bar');
$sumarioBOE->setSumarioNbo('KKKK3');

$dm = $this->get('doctrine_mongodb')->getManager();
$dm->persist($sumarioBOE);
$dm->flush();

#return new Response('Created sumarioBOE id '.$sumarioBOE->getId());
return $this->render('jbdMEBIBD2015FEBBundle:Default:index.html .twig', array('name' => $sumarioBOE->getId()));

}

public function searchSumarioBOEAction (Request $request)
{
$sumarioBOE=new boe1();
$form = $this->createForm(new searchSumarioBOEType(), $sumarioBOE, array ('method' => 'GET',));
$form->handleRequest($request);

if ($form->isValid()) {
//recupero los datos del formulario en un Array

$formDatos = $request->get($form->getName());
print_r($formDatos);
$fechaDesde = $formDatos['fechaDesde'];
$fechaHasta = $formDatos['fechaHasta'];
$nombreSeccion = $formDatos['NombreSeccion'];
print_r((string)$nombreSeccion);
$epigrafe = $formDatos['epigrafe'];
$departamento = $formDatos['departamento'];
$titulo = $formDatos['titulo'];
$datos= $this->buildQueryBuilder($request, $fechaDesde, $fechaHasta, $nombreSeccion, $epigrafe, $departamento, $titulo);

if ($form->get('Exportar')->isClicked()) {
$exportar=$this->exportCSVAction($datos);
return $exportar;


#return $this->render('jbdMEBIBD2015FEBBundle:Default:index.html .twig', array('name' => $this->removeCommonWords($departamento)));
}

#Paginamos la salida de la query
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate($datos, $request->query->getInt('page', 1), 20);
/* @var $pagination SlidingPagination */
#$pagination ->setUsedRoute('resultSearchBOE');
$pagination ->setPageRange(10);

return $this->render('jbdMEBIBD2015FEBBundle:Default:resultado. html.twig', array('datos' => $pagination));
#return $datos;
#return $this->forward('jbdMEBIBD2015FEBBundle:Default:generateC sv', array('datos' => $datos,));
}

return $this->render('jbdMEBIBD2015FEBBundle:Default:new.html.t wig', array(
'form' => $form->createView(),
));

}
}

Muchas gracias.

Un saludo