Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/07/2013, 10:26
daymerrf
 
Fecha de Ingreso: febrero-2013
Mensajes: 66
Antigüedad: 11 años, 2 meses
Puntos: 0
Dos entidades en un formulario

Hola, he estado trabajando en Symfony 2 y quiero con un solo formulario recoger los datos de dos entidades. Tengo una entidad Anuncio que tiene una relación de Uno a muchos con la entidad Imagen, es decir un anuncio tiene muchas imágenes. Aquí les dejo el código de las entidades y del formulario:
Código PHP:
class Anuncio
{
    
/**
    * @ORM\OneToMany(targetEntity="Imagen", mappedBy="anuncio")
    */    
    
private $imagenes;
    
    public function 
addImagene(AnunciosFrontendBundleEntityImagen $imagenes)
    {
        
$this->imagenes[] = $imagenes;
    
        return 
$this;
    }

    
/**
     * Remove imagenes
     *
     * @param \Anuncios\FrontendBundle\Entity\Imagen $imagenes
     */
    
public function removeImagene(AnunciosFrontendBundleEntityImagen $imagenes)
    {
        
$this->imagenes->removeElement($imagenes);
    }

    
/**
     * Get imagenes
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    
public function getImagenes()
    {
        return 
$this->imagenes;
    }
}
class 
Imagen
{
    
/**
     * @var \Anuncio
     *
     * @ORM\ManyToOne(targetEntity="Anuncio", inversedBy="imagenes")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="anuncio_id", referencedColumnName="id", onDelete="Cascade")
     * })
     */
    
protected $anuncio;
}

class 
AnuncioType extends AbstractType
{
    public function 
buildForm(FormBuilderInterface $builder, array $options)
    {
        
$builder            
            
->add('imagen1','file', array(
                
'mapped' => false,
                
'required' => false,
            ))
            ->
add('imagen2','file', array(
                
'mapped' => false,
                
'required' => false,
            ))
            ->
add('imagen3','file', array(
                
'mapped' => false,
                
'required' => false,
            ))
        ;
    }

Ahora mi duda está en cómo crear las instancias de Imagen para poder adicionarlas al formulario y como validar los campos del formulario utilizando los Assert que tiene definido symfony para validaciones como esta:
* @Assert\Image(maxSize = "1M")
Gracias y espero que me puedan ayudar