Newscoop\GimmeBundle\Form\Type\SnippetFieldType::buildForm PHP Метод

buildForm() публичный Метод

public buildForm ( Symfony\Component\Form\FormBuilderInterface $builder, array $options )
$builder Symfony\Component\Form\FormBuilderInterface
$options array
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $defaultRequired = false;
        $constraints = array();
        $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
            $form = $event->getForm();
            $data = $event->getData();
            $defaultRequired = false;
            $constraints = array();
            $fieldType = null;
            if (!is_null($data)) {
                $fieldType = $data->getFieldType();
                $patch = !is_null($this) ? !$this->patch : false;
                if ($data->isRequired() && $patch) {
                    $defaultRequired = true;
                    $constraints = array(new NotBlank());
                }
            }
            $form->add('data', $fieldType, array('required' => $defaultRequired, 'constraints' => $constraints));
        });
    }