Foros del Web » Programando para Internet » PHP »

Buscador con symfony

Estas en el tema de Buscador con symfony en el foro de PHP en Foros del Web. Hola a todos, necesito ayuda pues realice una vista para realizar la buesqueda extensiones telefónicas y tengo el presente problema: cuando realizo la buesqueda no ...
  #1 (permalink)  
Antiguo 25/08/2014, 08:36
 
Fecha de Ingreso: agosto-2014
Mensajes: 9
Antigüedad: 9 años, 8 meses
Puntos: 0
Buscador con symfony

Hola a todos, necesito ayuda pues realice una vista para realizar la buesqueda extensiones telefónicas y tengo el presente problema: cuando realizo la buesqueda no se muestrana los resultados en la pantilla...les dejo el codigo:
Controlador:

/**
* busca la extension del departamento especificado
*/
public function busquedaAction() {

$request = $this->getRequest();

if ($request->getMethod() == 'POST') {

$nombre_departamento = $request->get('nombre_departamento');

$em = $this->getDoctrine()->getManager();

$departamentos = $em->getRepository('ComunicacionBundle:Departamentos ')->findOneBy(array('slug' => $nombre_departamento));


if (!$departamentos) {
throw $this->createNotFoundException('Lo sentimos, el departamento espacificado no existe o escribió mal el nombre');
}//Esto funciona pues al buscar en un departamento que no existe se lanza la exepción....

//pero de aqui para abajo no obtengo ningun resultado
return $this->redirect($this->generateUrl('busqueda'));
} else {
return $this->render('ComunicacionBundle:Departamentos:busqueda _extension.html.twig', array('departamentos' => null)
);
}
}

Este es el código de la plantilla:
<form class="form-search" name="form_busq" action="{{ path('busqueda')}}" method="POST" id="search-id">

<input type="text" id="departamento_name" name="nombre_departamento" class="input-medium search-query">
<button type="submit" class="btn btn-primary"><i class=" icon-search "></i>Buscar</button>

</form>

<table class="table table-hover">
<thead>
<tr>
<th class="label-info"><strong>Nombre del Departamento</strong></th>
<th class="label-info"><strong>No. de Extensión</strong></th>

</tr>
</thead>
<tbody>
<tr class="warning">
{% if departamentos !=null %}
<td>{{ departamentos.nombre }}</td>
<td>{{ departamentos.extension.numeroEstension }}</td>
{%endif%}
</tr>

</tbody>
</table>
</div><!-- /well -->

Eso eas todo espero que me puedan ayudar...

saludos a Todos
  #2 (permalink)  
Antiguo 25/08/2014, 08:55
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Buscador con symfony

Código PHP:
Ver original
  1. $request = $this->getRequest();
  2.  
  3. if ($request->getMethod() == 'POST') {
  4.  
  5.     $nombre_departamento = $request->request->get('nombre_departamento');
  6.  
  7.     $em = $this->getDoctrine()->getManager();
  8.  
  9.     $departamentos = $em->getRepository('ComunicacionBundle:Departamentos ')->findOneBy(array('slug' => $nombre_departamento));
  10.  
  11.  
  12.     if (!$departamentos) {
  13.         throw $this->createNotFoundException('Lo sentimos, el departamento espacificado no existe o escribió mal el nombre');
  14.     }//Esto funciona pues al buscar en un departamento que no existe se lanza la exepción....
  15.  
  16. //pero de aqui para abajo no obtengo ningun resultado
  17.     return $this->render(
  18.         'ComunicacionBundle:Departamentos:busqueda _extension.html.twig',
  19.         array('departamentos' => $departamentos)
  20.     );
  21.    
  22. } else {
  23.     return $this->redirect($this->generateUrl('busqueda'));
  24. }
Es aconsejable que esta parte:
Código PHP:
Ver original
  1. $departamentos = $em->getRepository('ComunicacionBundle:Departamentos ')->findOneBy(array('slug' => $nombre_departamento));
Lo manejes con una consulta DQL o con el query builder desde el Repositorio para que evites el lazy loading de los métodos finOneBy, findAll, etc..
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: buscador, html, symfony
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:59.