setParent() 공개 메소드

public setParent ( Symfony\Component\Form\FormBuilderInterface $parent = null )
$parent Symfony\Component\Form\FormBuilderInterface
예제 #1
0
 /**
  * {@inheritdoc}
  */
 public function createBuilder(FormFactoryInterface $factory, $name, array $options = array(), FormBuilderInterface $parent = null)
 {
     $options = $this->getOptionsResolver()->resolve($options);
     // Should be decoupled from the specific option at some point
     $dataClass = isset($options['data_class']) ? $options['data_class'] : null;
     $builder = new FormBuilder($name, $dataClass, new EventDispatcher(), $factory, $options);
     $builder->setType($this);
     $builder->setParent($parent);
     $this->buildForm($builder, $options);
     return $builder;
 }
예제 #2
0
 public function testGetFormConfigErasesReferences()
 {
     $builder = new FormBuilder('name', null, $this->dispatcher, $this->factory);
     $builder->setParent(new FormBuilder('parent', null, $this->dispatcher, $this->factory));
     $builder->add(new FormBuilder('child', null, $this->dispatcher, $this->factory));
     $config = $builder->getFormConfig();
     $reflClass = new \ReflectionClass($config);
     $factory = $reflClass->getProperty('factory');
     $parent = $reflClass->getProperty('parent');
     $children = $reflClass->getProperty('children');
     $unresolvedChildren = $reflClass->getProperty('unresolvedChildren');
     $factory->setAccessible(true);
     $parent->setAccessible(true);
     $children->setAccessible(true);
     $unresolvedChildren->setAccessible(true);
     $this->assertNull($factory->getValue($config));
     $this->assertNull($parent->getValue($config));
     $this->assertEmpty($children->getValue($config));
     $this->assertEmpty($unresolvedChildren->getValue($config));
 }
예제 #3
0
 /**
  * Adds a new field to this group. A field must have a unique name within
  * the group. Otherwise the existing field is overwritten.
  *
  * If you add a nested group, this group should also be represented in the
  * object hierarchy.
  *
  * @param string|FormBuilder       $child
  * @param string|FormTypeInterface $type
  * @param array                    $options
  *
  * @return FormBuilder The current builder
  */
 public function add($child, $type = null, array $options = array())
 {
     if ($child instanceof self) {
         $child->setParent($this);
         $this->children[$child->getName()] = $child;
         return $this;
     }
     if (!is_string($child)) {
         throw new UnexpectedTypeException($child, 'string or Symfony\\Component\\Form\\FormBuilder');
     }
     if (null !== $type && !is_string($type) && !$type instanceof FormTypeInterface) {
         throw new UnexpectedTypeException($type, 'string or Symfony\\Component\\Form\\FormTypeInterface');
     }
     if ($this->currentLoadingType && ($type instanceof FormTypeInterface ? $type->getName() : $type) == $this->currentLoadingType) {
         throw new CircularReferenceException(is_string($type) ? $this->getFormFactory()->getType($type) : $type);
     }
     $this->children[$child] = array('type' => $type, 'options' => $options);
     return $this;
 }