Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/05/2013, 12:46
Avatar de fhederico
fhederico
 
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 4 meses
Puntos: 23
Información Respuesta: problemas con formulario de busqueda

Hola,

Dos cosas, la primera en tu plantilla o vista, llamas a

Código:
<form action="{{ path('ofertas_busqueda2') }}" method="POST" {{ 
form_enctype(form) }}>
Pero en tu Controller

Código:
* @Route("/buscar", name="ofertas_busqueda")
* @Template("SaludOfertasBundle:Ofertas:buscar.html. twig")
*/
public function buscarAction()
{
...
Si deseas que al enviar el formulario vaya a esta misma funcion debes poner el mismo nombre, ahora, si tienes otra funcion, debes colocarla aqui.

Lo otro, sobre tu funcion "buscarAction"

Código:
//Estas creando aqui el formulario
$form = $this->createForm(new SearchType());

//Aqui lo devuelves, si la persona pulso enviar al formulario igualmente con esto haces que cargue
//el formulario en blanco
return array('form'=>$form->createView());

//Aqui no entra nunca
$em = $this->getDoctrine()->getManager();
$title= $this->getRequest()->get('parametro');
$entities = $em->getRepository('SaludOfertasBundle:Ofertas')->getOfertas($title);
if (!$entities) {
throw $this->createNotFoundException('Entidad Ofertas no encontrada.');
$this->get('session')->setFlash('notice', 'No se encontraron Registros.');
}

return $this->render('SaludOfertasBundle:Ofertas:buscar2.html.t wig',array('entities'=>$entities));

}

Te recomiendo que detectes cuando enviaron el formulario y de hay trabajes, por ejemplo

Código:
	$form = $this->createForm(new SearchType());
	$request = $this->getRequest();
	//Si se envio, buscamos, si no, cargamos el formulario vacio solamente
	if($request->getMethod() === 'POST')
	{			
		$em = $this->getDoctrine()->getManager();
		$title= $this->getRequest()->get('parametro');
		
		$entities = $em->getRepository('SaludOfertasBundle:Ofertas')->getOfertas($title);
	
		if (!$entities) {
			throw $this->createNotFoundException('Entidad Ofertas no encontrada.');
			$this->get('session')->setFlash('notice', 'No se encontraron Registros.');
		}
		
		return $this->render('SaludOfertasBundle:Ofertas:buscar2.html.twig',array('entities'=>$entities));
	}
	
	
	return array('form'=>$form->createView());

No se como tienes tu plantilla "buscar2.html.twig", pero bueno, espero te sirva

Por ultimo, ocupa etiquetas para poder ver tu codigo mas facilmente ;)

Saludos