src/Admin/AbstractAdmin.php
protected function buildForm()
    {
        if ($this->form) {
            return;
        }

        // append parent object if any
        // todo : clean the way the Admin class can retrieve set the object
        if ($this->isChild() && $this->getParentAssociationMapping()) {
            $parent = $this->getParent()->getObject($this->request->get($this->getParent()->getIdParameter()));

            $propertyAccessor = $this->getConfigurationPool()->getPropertyAccessor();
            $propertyPath = new PropertyPath($this->getParentAssociationMapping());

            $object = $this->getSubject();

            $value = $propertyAccessor->getValue($object, $propertyPath);

            if (\is_array($value) || ($value instanceof \Traversable && $value instanceof \ArrayAccess)) {
                $value[] = $parent;
                $propertyAccessor->setValue($object, $propertyPath, $value);
            } else {
                $propertyAccessor->setValue($object, $propertyPath, $parent);
            }
        }

        $formBuilder = $this->getFormBuilder();
        $formBuilder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
            $this->preValidate($event->getData());
        }, 100);

        $this->form = $formBuilder->getForm();
    }
protected function buildForm()
    {
        if ($this->form) {
            return;
        }

        // append parent object if any
        // todo : clean the way the Admin class can retrieve set the object
        if ($this->isChild() && $this->getParentAssociationMapping()) {
            $parent = $this->getParent()->getObject($this->request->get($this->getParent()->getIdParameter()));

            $propertyAccessor = $this->getConfigurationPool()->getPropertyAccessor();
            $propertyPath = new PropertyPath($this->getParentAssociationMapping());

            $object = $this->getSubject();

            $value = $propertyAccessor->getValue($object, $propertyPath);

            if (\is_array($value) || ($value instanceof \Traversable && $value instanceof \ArrayAccess)) {
                $value[] = $parent;
                $propertyAccessor->setValue($object, $propertyPath, $value);
            } else {
                $propertyAccessor->setValue($object, $propertyPath, $parent);
            }
        }

        $formBuilder = $this->getFormBuilder();
        $formBuilder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
            $this->preValidate($event->getData());
        }, 100);

        $this->form = $formBuilder->getForm();
    }
protected function buildForm ( ) { if ( $ this -> form ) { return ; } // append parent object if any // todo : clean the way the Admin class can retrieve set the object if ( $ this -> isChild ( ) && $ this -> getParentAssociationMapping ( ) ) { $ parent = $ this -> getParent ( ) -> getObject ( $ this -> request -> get ( $ this -> getParent ( ) -> getIdParameter ( ) ) ) ; $ propertyAccessor = $ this -> getConfigurationPool ( ) -> getPropertyAccessor ( ) ; $ propertyPath = new PropertyPath ( $ this -> getParentAssociationMapping ( ) ) ; $ object = $ this -> getSubject ( ) ; $ value = $ propertyAccessor -> getValue ( $ object , $ propertyPath ) ; if ( \ is_array ( $ value ) || ( $ value instanceof \ Traversable && $ value instanceof \ ArrayAccess ) ) { $ value [ ] = $ parent ; $ propertyAccessor -> setValue ( $ object , $ propertyPath , $ value ) ; } else { $ propertyAccessor -> setValue ( $ object , $ propertyPath , $ parent ) ; } } $ formBuilder = $ this -> getFormBuilder ( ) ; $ formBuilder -> addEventListener ( FormEvents :: POST_SUBMIT , function ( FormEvent $ event ) { $ this -> preValidate ( $ event -> getData ( ) ) ; } , 100 ) ; $ this -> form = $ formBuilder -> getForm ( ) ; }
Build the form FieldDescription collection.
Build the form FieldDescription collection .