Foros del Web » Programando para Internet » PHP » Symfony »

[SOLUCIONADO] Problema con Forward y Formulario al pasar variable

Estas en el tema de Problema con Forward y Formulario al pasar variable en el foro de Symfony en Foros del Web. Hola a todos, sigo aquí con mi sistema policial. En una de mis vistas tengo una tabla en la que muestro información de personas (Involucrados) ...
  #1 (permalink)  
Antiguo 02/06/2013, 14:15
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Pregunta Problema con Forward y Formulario al pasar variable

Hola a todos, sigo aquí con mi sistema policial.
En una de mis vistas tengo una tabla en la que muestro información de personas (Involucrados) y en la que puedo marcar varias filas mediente checkboxs. Además tengo un botón Generar para generar un documento (Citaciones) por cada persona seleccionada.
Este documento tiene algunos datos que se llenan a partir de un formulario (que no se corresponde a ninguna entidad).
Lo que pasa es que obtengo bien las personas seleccionadas, muestro bien el formulario para llenar los datos, pero cuando envío los datos del documento, pierdo el arreglo de personas que tenía.
A continuación pongo el código que estoy usando:

Aquí obtengo los involucrados seleccionados y hago un forward al Action que construye el formulario (fue lo mejor que se me ocurrió):
Código PHP:
public function generar_citacionesAction() {
        
$peticion $this->getRequest();

        if (
$peticion->getMethod() == 'POST') {
            
$postData $peticion->request->get('involucrados');
            
$em $this->getDoctrine()->getEntityManager();
            
$id_oficial $this->get('security.context')->getToken()->getUser()->getOficial()->getId();
            
$expediente $em->getRepository('InvestigacionesPolicialesBundle:Expediente')->findOneBy(array('oficial' => $id_oficial'fundamentado' => 'false'));
            
$involucrados $expediente->getDenuncia()->getInvolucrados();
            
$seleccionados = array();
            foreach (
$involucrados as $involucrado) {
                
$id $involucrado->getId();
                if (
$postData[$id]) {
                    
$seleccionados[] = $involucrado;
                }
            }
            return 
$this->forward('InvestigacionesPolicialesBundle:Involucrado:llenar_citacion', array(
                        
'seleccionados' => $seleccionados
            
));
        }
        return 
$this->redirect($this->generateUrl('investigaciones_policiales'));
    } 
Aquí construyo el formulario de la citación:
Código PHP:
public function llenar_citacionAction($seleccionados) {
        
$peticion $this->getRequest();

        if (
$peticion->getMethod() == 'POST') {
            
$defaultData = array('message' => 'Type your message here');
            
$formulario $this->createFormBuilder($defaultData)
                    ->
add('lugar''textarea')
                    ->
add('fecha''date')
                    ->
add('hora''time')
                    ->
add('motivo''textarea')
                    ->
getForm();

            
$formulario->bind($peticion);
            if (
$formulario->isValid()) {
                
$data $formulario->getData();
                
$lugar $data['lugar'];
                
$fecha $data['fecha'];
                
$hora $data['hora'];
                
$motivo $data['motivo'];
                
$investigador $this->get('security.context')->getToken()->getUser()->getOficial();
                return 
$this->render("InvestigacionesPolicialesBundle:Involucrado:listado_citaciones.html.twig", array(
                            
'investigador' => $investigador,
                            
'seleccionados' => $seleccionados,
                            
'lugar' => $lugar,
                            
'fecha' => $fecha,
                            
'hora' => $hora,
                            
'motivo' => $motivo
                
));
            }
            return 
$this->render("InvestigacionesPolicialesBundle:Involucrado:generar_citaciones.html.twig", array(
                        
'formulario' => $formulario->createView(),
                        
'seleccionados' => $seleccionados
            
));
        }
        return 
$this->redirect($this->generateUrl('investigaciones_policiales'));
    } 
En la vista listado_citaciones para probar puse:
{{ seleccionados | length }}
y me imprime 0.
  #2 (permalink)  
Antiguo 02/06/2013, 21:41
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Problema con Forward y Formulario al pasar variable

Ya lo solucioné, pero usando otro método: Sesiones.
Muy fácil, jajaja, saludos y gracias de todas formas...

Etiquetas: formulario, forward
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 01:17.