Hi everyone.

I'm having a rather odd problem which I suspect is either a bug or
more likely I'm trying to do things the wrong way.I'd appreciate if
you can shed a little light on the proper way to address this. Let me
describe the issue.

We have a container with the following ORM definition:
Container:
 type: entity
 table: container
 id:
   id:
     type: integer
     generator:
       strategy: AUTO
   fields:
     name:
       type: string
       length: 25
   oneToMany:
     children:
       targetEntity: Container
       mappedBy: parent
  manyToOne:
    parent:
      targetEntity: Container
      inversedBy: children
     joinColumn:
        name: parent_id
        referencedColumnName: id


And a FormType which looks as follows:
use
   Symfony\Component\Form\AbstractType,
   Symfony\Component\Form\FormBuilder
   ;

class ContainerType extends AbstractType
{
   public function buildForm(FormBuilder $builder, array $options)
   {
       $builder
           ->add('name', 'text')
           ->add('children', 'collection', array(
               'type' => new ContainerType(),
               'prototype' => false,
               'allow_add' => true,
               'allow_delete' => true, ));

   }
}


In the Controller we create a formBuilder by:
               $data = new Container();
               $form = $this->get('form.factory')->create(new
ContainerType());
               $form->setData($data);
....etc...


The form will crash with a:
'Fatal error: Maximum function nesting level of '100' reached,
aborting! in /app/cache/dev/twig/15/ff/
401ed143a10a78a26e39b6e98c03.php on line 38'
And a long stack trace showing the form recursing on itself.

I looked at the code and I didn't see an easy way to stop the
Container from rendering an infinite depth. What I'd really want is
for it to throw out all the existing children from a parent but when a
child does not exist not to create a prototype one....

Obviously the buildForm method calls "new ContainerType" so that would
be at the root of the issue. However I can't seem to pass
"\ContainerType" as type.

Can anyone shed a light on the correct way to do this?

Thanks!

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en

Reply via email to