Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Error al editar una entidad con una relacion ManyToOne

20 de mayo de 2015

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

#1

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