Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/03/2014, 18:41
Esdras_mtz
 
Fecha de Ingreso: febrero-2014
Ubicación: Edo. México
Mensajes: 85
Antigüedad: 10 años, 9 meses
Puntos: 0
Busqueda Respuesta: Agregar nuevos parametros a un $request

Cita:
Hay varias formas, todo depende en que punto quieres hacer eso. La mas sencilla es antes de persistir los datos.
Otra forma es usando eventos de doctrine: http://docs.doctrine-project.org/en/...ce/events.html o los de symfony: http://symfony.com/doc/current/cookb..._listener.html, hasta los eventos en los formularios te pueden servir: http://symfony.com/doc/current/cookb...ification.html
Gracias por las ligas hhs los estoy checando pero se ven algo complicadas.

Cita:
No deberia ser necesario todo el trabajo "manual" que estas haciendo, con los formularios embebidos y unos bits de js deberia ser suficiente, como estas generando el formulario ?
JugadorType
Código PHP:
 {
        
$builder->add('nombre')
                ->
add('apellidoP')
                ->
add('apellidoM')
               
//...
                
->add('registroJugadorxy''collection', array(
                    
'type' => new RegistroJugadorType(),
                    
'allow_add'    => true,
                    
'by_reference' => false,
                    
'allow_delete' => true,
                  ))                
                ->
add('save''submit');
    } 
RegistroJugadorType
Código PHP:
 {       
        
$builder->add('X''submit', array(                                        
                                        
'attr'  => array('class' => 'btnBorrar button button-pill button-caution button-tiny ')                                        
                                    ))                 
                ->
add('numero')
                ->
add('posicion')
                ->
add('dt');
    } 
Estos son los formularios. Todo funciona perfectamente, puedo agregar y eliminar colecciones del formulario "RegistroJugadorType" mediante JQuery y la información se persiste como debe de ser al momento de hacer el flush(). Mi pequeño y tedioso problema con el que llevo mas de 3 semanas luchando es:
-Cuando quiero agregar valores a unos atributos no invocados dentro de "RegistroJugadorType" como son: "FechadeInscripcion" y "Pago"

En fecha lo puede solucionar con :
Código PHP:
 * @ORMHasLifecycleCallbacks()
/**
     * @ORM\PrePersist
     */
    
public function prePersist()
    {
        
$this->setFecha(new DateTime());
    } 
Pero con e campo "Pago" no se puede ya que este toma el costo de otra tabla llamada "Costos" y al momento de hacer la consulta dentro de "prePersist()" me marca error .Cabe mencionar que "Pago" y "Cosots" no tienen relación alguna.

Necesito algo como esto:
Código PHP:
$Jugador $em->getRepository('FutbolMainBundle:Jugador')->find($id);
$original = new ArrayCollection();
        
        foreach (
$Jugador->getRegistroJugadorxy() as $registroJugador) {
             
$original->add($registroJugador);       
        }
foreach (
$original as $registroJugador) { // Aqui recorro el ArrayCollection de los datos que actualmente existen en la BD nececito un foreach para el arrayCollection enviado del formulario
            
if (false === $Jugador->getRegistroJugadorxy()->contains ($registroJugador)) {   // No entiendo my bien este if , pero aqui me filtra y me deja trabajar con los objetos eliminados en el formulario.              
                
$registroJugador->setActivo(false); // Aqui puedo generar setters para modificar el valor de los atributos que han sido eliminados 

            

Pero para los formularios que se van agregando : /