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