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

[SOLUCIONADO] Obtener un parámetro después de un submit

Estas en el tema de Obtener un parámetro después de un submit en el foro de Symfony en Foros del Web. tengo una clase Tema que esta relacionada de uno a varios con una clase dictado... la clase tema tiene un campo booleano que es el ...
  #1 (permalink)  
Antiguo 09/06/2015, 12:49
 
Fecha de Ingreso: mayo-2015
Mensajes: 50
Antigüedad: 9 años, 6 meses
Puntos: 0
Obtener un parámetro después de un submit

tengo una clase Tema que esta relacionada de uno a varios con una clase dictado...

la clase tema tiene un campo booleano que es el estado y esta en true.. entonces para registrar un dictado el usuario selecciona un tema y escribe una observación y selecciona la fecha..al momento de guardar, se me guarda todo correcto: pero ahora lo que necesito hacer, al momento de guardar el dictado, es que el tema seleccionado su estado ´true´ se vuelva a ´false´... alguien me podría ayudar con eso... por favor

Mi controlador es el siguiente:
Código PHP:
public function escogertemasAction($id) {
          
        
$em $this->getDoctrine()->getManager();
        
$dictado = new Dictado(); //instancio clase dictado para almacenar los datos
        
$tema=new Tema(); //instancio clase Tema para modificar el estado 
        
$periodo $em->getRepository('JHONATHANSicondcBundle:Periodo')->getperiodoactual();//obtener el periodo actual
        
$did 1//id docente falta poner en una sesion
        
date_default_timezone_set('America/Guayaquil');
        
$fecha date('Y-m-d');
        
$dias = array('Domingo''Lunes''Martes''Miércoles''Jueves''Viernes''Sabado');
        
$diaActual $dias[date('N'strtotime($fecha))];//sacar el dia de la fecha actual
        
$materiasxdocente $em->getRepository('JHONATHANSicondcBundle:Capitulo')->getmateriasdocente($did$periodo->getId()); //Obtener materias del docente
        
$capitulos $em->getRepository('JHONATHANSicondcBundle:Capitulo')->getcapitulosasignatura($id,$periodo->getId()); //Obtener capitulos del periodo actual
        
$datosdictado $em->getRepository('JHONATHANSicondcBundle:Dictado')->getdictados($did); //mostrar todos los dictados registrados y  mostarrlos en una tabla
        
$materiahorario $em->getRepository('JHONATHANSicondcBundle:Dictadomateria')->getmateriahorario($did$diaActual); //sacar materias segun el horario de clases
        
$form $this->createForm(new DictadoType($id), $dictado);//creando el form de dictadoType
        
$datos $em->getRepository('JHONATHANSicondcBundle:Tema')->gettemas($id);//obtener temas
        
$request $this->getRequest();
        
$form->handleRequest($request);
        if (
$form->isValid()) {
            
$dictado->setFecha(new DateTime("now"));//envio la feha actual al campo fecha de la clase dicatado
            
$em->persist($dictado);
            
$em->flush();
            
$this->get('session')->getFlashBag()->add('Info''Avance Microcurricular Registrado Correctamente ');
            
            return 
$this->render('JHONATHANSicondcBundle:Default:InicioD.html.twig', array(
                        
'datos' => $datos,
                        
'id' => $id,
                        
'materiasxdocente' => $materiasxdocente,
                        
'capitulos'=>$capitulos,
                        
'datosdictado'=>$datosdictado,
                        
'materiahorario' => $materiahorario,
                        
'formulario' => $form->createView()
            ));
        }

        return 
$this->render('JHONATHANSicondcBundle:Docente:dictado_temas.html.twig', array(
                    
'datos' => $datos,
                    
'id' => $id,
                    
'capitulos'=>$capitulos,
                    
'materiasxdocente' => $materiasxdocente,
                    
'datosdictado'=>$datosdictado,
                    
'materiahorario' => $materiahorario,
                    
'formulario' => $form->createView()
        ));
    } 
Mi clase Dictado es:

[PHP]
Código PHP:
public function setTema(JHONATHANSicondcBundleEntityTema $tema null)
    {
        
$this->tema $tema;
    
        return 
$this;
    }

    
/**
     * Get tema
     *
     * @return \JHONATHAN\SicondcBundle\Entity\Tema 
     */
    
public function getTema()
    {
        return 
$this->tema;
    }
    
     public function 
__toString() {
        return 
$this->getNombre();
    } 

Última edición por JHONATHAN11; 09/06/2015 a las 12:59
  #2 (permalink)  
Antiguo 09/06/2015, 14:07
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 5 meses
Puntos: 379
Respuesta: Obtener un parámetro después de un submit

Para eso utiliza los eventos en doctrine: http://docs.doctrine-project.org/en/...ce/events.html
http://symfony.com/doc/2.7/cookbook/...bscribers.html
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 10/06/2015, 11:45
 
Fecha de Ingreso: mayo-2015
Mensajes: 50
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Obtener un parámetro después de un submit

Gracias por la Ayuda... pero ya encontré una solución más rápida...

y lo que hice es después del submit, es recuperar el id del tema $dictado->getTema() y lo mando a buscar en la clase tema y listo mando el estado=false..

Gracias por tu respuesta...

Código PHP:
 if ($form->isValid()) {
            
$dictado->setFecha(new DateTime("now"));//envio la feha actual al campo fecha de la clase dicatado
            
$em->persist($dictado);
            
$em->flush();
            
$temas $em->getRepository('JHONATHANSicondcBundle:Tema')->find($dictado->getTema());
            
$temas->setEstado(FALSE);
            
$em->persist($temas);
            
$em->flush();
            
            
$this->get('session')->getFlashBag()->add('Info''Avance Microcurricular Registrado Correctamente ');
            
            return 
$this->render('JHONATHANSicondcBundle:Default:InicioD.html.twig', array(
                        
'datos' => $datos,
                        
'id' => $id,
                        
'materiasxdocente' => $materiasxdocente,
                        
'capitulos'=>$capitulos,
                        
'datosdictado'=>$datosdictado,
                        
'materiahorario' => $materiahorario,
                        
'formulario' => $form->createView()
            ));
        } 

Etiquetas: submit
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 23:40.