Hola:
Tengo una problema, al editar una entidad con una relación ManyToOne:
/** * @ORM\ManyToOne(targetEntity="Destiny\AppBundle\Entity\Imagenes", * cascade={"persist"}) * @ORM\JoinColumn(name="imagenes_id", nullable=true, referencedColumnName="id", onDelete="CASCADE") **/ private $imagenes;
Y en el formulario lo tengo así:
->add('imagenes', 'entity', array( 'class' => 'DestinyAppBundle:Imagenes', 'required' => true, 'expanded' => true, 'multiple' => false, 'choice_label' => 'webPath', ))
La entidad se me persiste correctamente y si elimino 'expanded' => true,
me funciona correctamente. Al editar me muestra este error:
The form's view data is expected to be of type scalar, array or an instance of \ArrayAccess, but is an instance of class Destiny\AppBundle\Entity\Imagenes. You can avoid this error by setting the "data_class" option to "Destiny\AppBundle\Entity\Imagenes" or by adding a view transformer that transforms an instance of class Destiny\AppBundle\Entity\Imagenes to scalar, array or an instance of \ArrayAccess.
Saludos
Respuestas
En este tutorial puedes encontrar más información sobre por qué se produce este error y cómo solucionarlo. Básicamente tienes que definir la opción data_class del campo imagenes
:
->add('imagenes', 'entity', array( 'class' => 'DestinyAppBundle:Imagenes', 'data_class' => 'DestinyAppBundle\Entity\Imagenes', 'required' => true, 'expanded' => true, 'multiple' => false, 'choice_label' => 'webPath', ))
@javiereguiluz
20 mayo 2015, 14:54