Hola, estoy probando este ejemplo de una relación en la misma tabla
/** * @ORM\OneToMany(targetEntity="Payment", mappedBy="parent") */ public $child; /** * @ORM\ManyToOne(targetEntity="Payment", inversedBy="child") * @ORM\JoinColumn(name="parent_id", referencedColumnName="id") */ public $parent;
y agrego esto en el constructor:
/** * Constructor */ public function __construct() { $this->child = new ArrayCollection(); }
Genero el formulario:
$form = $this->createFormBuilder($plans) ->add('name', TextType::class, array('label' => 'Nombre')) ->add('recargo', TextType::class, array('label' => 'Recargo','required' => false,)) ->add('descuento', TextType::class, array('label' => 'Descuento','required' => false,)) ->add('multiple', CheckboxType::class, array('label' => 'Multiple','required' => false,)) ->add('child', EntityType::class, array('class' => 'AppBundle:Payment','label' => 'Padre','multiple' => false,)) ->add('save', SubmitType::class, array('label' => 'Guardar')) ->add('saveAndAdd', SubmitType::class, array('label' => 'Guardar y Agregar uno Nuevo')) ->getForm();
Muestra todos los campos bien y el combo para seleccionar a su padre, pero al intentar agregar o guardar alguna modificación sale este error
Catchable Fatal Error: Argument 1 passed to Doctrine\Common\Collections\ArrayCollection::__construct() must be of the type array, object given, called in /home/se/D/mn/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php on line 605 and defined
¿Alguna idea?
Saludos
Respuestas
¡Ups! Me auto-respondo: tenía armado el formulario mal; puse child
y en su lugar iba parent
. Saludos.
$form = $this->createFormBuilder($plans) ->add('name', TextType::class, array('label' => 'Nombre')) ->add('recargo', TextType::class, array('label' => 'Recargo','required' => false,)) ->add('descuento', TextType::class, array('label' => 'Descuento','required' => false,)) ->add('multiple', CheckboxType::class, array('label' => 'Multiple','required' => false,)) ->add('parent', EntityType::class, array('class' => 'AppBundle:Payment','label' => 'Padre','multiple' => false,)) ->add('save', SubmitType::class, array('label' => 'Guardar')) ->add('saveAndAdd', SubmitType::class, array('label' => 'Guardar y Agregar uno Nuevo')) ->getForm();
@xub
11 marzo 2016, 17:35
Estas cosas pasan a veces ;)
@javiereguiluz
11 marzo 2016, 17:37