Ver Mensaje Individual
  #7 (permalink)  
Antiguo 26/02/2014, 17:55
Esdras_mtz
 
Fecha de Ingreso: febrero-2014
Ubicación: Edo. México
Mensajes: 85
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Editar y guardar en formularios embebidos 2.4

Código PHP:
namespace FutbolMainBundleEntity;

use 
DoctrineORMMapping as ORM;
use 
DoctrineCommonCollectionsArrayCollection;

/**
 * Equipos
 *
 * @ORM\Table(name="equipos", indexes={@ORM\Index(name="id_Cliente", columns={"id_Cliente"})})
 * @ORM\Entity
 */
class Equipos
{
    
/**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    
private $id;

    
/**
     * @var \DateTime
     *
     * @ORM\Column(name="fechaCreacion", type="date", nullable=true)
     */
    
private $fechacreacion;

    
/**
     * @var string
     *
     * @ORM\Column(name="nombre", type="string", length=250, nullable=false)
     */
    
private $nombre;
    
    
    
/**
     * @var \Clientes
     *
     * @ORM\ManyToOne(targetEntity="Clientes")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_Cliente", referencedColumnName="id")
     * })
     */
    
private $idCliente;

/**
     * @ORM\OneToMany(targetEntity="Inscripcionequipo", mappedBy="idEquipo", cascade={"persist"} )
     */
    
    
private $insEqEquipos;
            
    public function 
__construct()
    {
        
$this->insEqEquipos = new ArrayCollection();
    }

    
/**
     * Get id
     *
     * @return integer 
     */
    
public function getId()
    {
        return 
$this->id;
    }

    
/**
     * Set fechacreacion
     *
     * @param \DateTime $fechacreacion
     * @return Equipos
     */
    
public function setFechacreacion($fechacreacion)
    {
        
$this->fechacreacion $fechacreacion;

        return 
$this;
    }

    
/**
     * Get fechacreacion
     *
     * @return \DateTime 
     */
    
public function getFechacreacion()
    {
        return 
$this->fechacreacion;
    }

    
/**
     * Set nombre
     *
     * @param string $nombre
     * @return Equipos
     */
    
public function setNombre($nombre)
    {
        
$this->nombre $nombre;

        return 
$this;
    }

    
/**
     * Get nombre
     *
     * @return string 
     */
    
public function getNombre()
    {
        return 
$this->nombre;
    }

    
/**
     * Set idCliente
     *
     * @param \Futbol\MainBundle\Entity\Clientes $idCliente
     * @return Equipos
     */
    
public function setIdCliente(FutbolMainBundleEntityClientes $idCliente null)
    {
        
$this->idCliente $idCliente;

        return 
$this;
    }

    
/**
     * Get idCliente
     *
     * @return \Futbol\MainBundle\Entity\Clientes 
     */
    
public function getIdCliente()
    {
        return 
$this->idCliente;
    }

    
/**
     * Add insEqEquipos
     *
     * @param \Futbol\MainBundle\Entity\Inscripcionequipo $insEqEquipos
     * @return Equipos
     */
    
public function addInsEqEquipo(FutbolMainBundleEntityInscripcionequipo $insEqEquipos)
    {
        
$this->insEqEquipos[] = $insEqEquipos;

        return 
$this;
    }

    
/**
     * Remove insEqEquipos
     *
     * @param \Futbol\MainBundle\Entity\Inscripcionequipo $insEqEquipos
     */
    
public function removeInsEqEquipo(FutbolMainBundleEntityInscripcionequipo $insEqEquipos)
    {
        
$this->insEqEquipos->removeElement($insEqEquipos);
    }

    
/**
     * Get insEqEquipos
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    
public function getInsEqEquipos()
    {
        return 
$this->insEqEquipos;
    }

    
/**
     * Set nombresss
     *
     * @param string $nombresss
     * @return Equipos
     */
    
public function setNombresss($nombresss)
    {
        
$this->nombresss $nombresss;

        return 
$this;
    }

    
/**
     * Get nombresss
     *
     * @return string 
     */
    
public function getNombresss()
    {
        return 
$this->nombresss;
    }


FormTypes:

Código PHP:
namespace FutbolMainBundleFormType;

use 
FutbolMainBundleFormTypeInscripcionequipoType;
use 
SymfonyComponentFormAbstractType;
use 
SymfonyComponentFormFormBuilderInterface;
use 
SymfonyComponentOptionsResolverOptionsResolverInterface;

class 
TorneosType extends AbstractType
{
    public function 
buildForm(FormBuilderInterface $builder, array $options)
    {
        
$builder->add('nombre')
                ->
add('categoria')
                ->
add('genero')
                ->
add('fechaInicio','date', array(
                    
'widget' => 'single_text',
                    
'format' => 'yyyy-MM-dd',))
                ->
add('fechaFin','date', array(
                    
'widget' => 'single_text',
                    
'format' => 'yyyy-MM-dd',))
                ->
add('insEqTorneos''collection', array(
                    
'type' => new InscripcionequipoType(),
                    
'allow_add'    => true,
                    
'by_reference' => false,
                    
'allow_delete' => true,
                    
'options'  => array(                                        
                                        
'attr'      => array('class' => 'Consulta2Niveles'),
                                        
'label' => false,
                                    )))                
                ->
add('save''submit');
    }

    public function 
setDefaultOptions(OptionsResolverInterface $resolver)
    {
        
$resolver->setDefaults(array(
            
'data_class' => 'Futbol\MainBundle\Entity\Torneos',
            
'cascade_validation' => true,
        ));
    }

   public function 
getName()
    {
        return 
'torneos';
    }

Código PHP:
<?php

namespace FutbolMainBundleFormType
;

use 
SymfonyComponentFormAbstractType;
use 
SymfonyComponentFormFormBuilderInterface;
use 
SymfonyComponentOptionsResolverOptionsResolverInterface;

class 
InscripcionequipoType extends AbstractType
{
    public function 
buildForm(FormBuilderInterface $builder, array $options)
    {
        
//            $builder->add('idEquipo', new EquipoType(), array(
//            'label' => false,
        
$builder->add('X''submit', array(                                        
                                        
'attr'  => array('class' => 'btnBorrar button button-pill button-caution button-tiny ')                                        
                                    ))
                
                ->
add('idEquipo''entity', array(
                
'class' => 'FutbolMainBundle:Equipos',
                
'property' => 'nombre',
                
'label' => false,
                
'empty_value' => '**Selecciona un Equipo**',
            ));
    }

    public function 
setDefaultOptions(OptionsResolverInterface $resolver)
    {
        
$resolver->setDefaults(array(
            
'data_class' => 'Futbol\MainBundle\Entity\Inscripcionequipo',
            
'cascade_validation' => true,
        ));
    }

    public function 
getName()
    {
        return 
'inscripcionequipo';
    }
}
Código PHP:
namespace FutbolMainBundleFormType;


use 
SymfonyComponentFormAbstractType;
use 
SymfonyComponentFormFormBuilderInterface;
use 
SymfonyComponentOptionsResolverOptionsResolverInterface;

class 
EquipoType extends AbstractType
{
    public function 
buildForm(FormBuilderInterface $builder, array $options)
    {
        
$builder->add('nombre'null, array(
    
'label_attr' => array('class' => 'label2Niveles'),
    ));
        
    }

    public function 
setDefaultOptions(OptionsResolverInterface $resolver)
    {
        
$resolver->setDefaults(array(
            
'data_class' => 'Futbol\MainBundle\Entity\Equipos',
            
'cascade_validation' => true,
        ));
    }

    public function 
getName()
    {
        return 
'equipo';
    }

En la parte de la vista donde pinto el formulario tengo la opción con jquery de agregar nuevos equipos a los Torneos y lo que quiero hacer es aplicar un "setJj()" por ejemplo , pero de uno de los nuevos registros agregados por JQuery .
Una solución alternativa que se me ocurrió es mandar el campo como oculto en el formulario y cambiar el valor con JQuery, pero hay algunos campos sensibles en cuanto a seguridad respecta, como el campo “pago” que no me gustaría manejar por el lado del cliente


Saludos y gracias por la atención prestada ^^