示例#1
0
 /**
  * define form fields
  * @param FormBuilderInterface $builder
  * @param array                $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     parent::buildForm($builder, $options);
     $builder->add('slug', null, array('label' => 'form.page.type.slug.label'))->add('status', 'choice', array('label' => 'form.page.type.status.label', 'choices' => array(Article::DRAFT => 'form.page.type.status.choice.label.draft', Article::PUBLISHED => 'form.page.type.status.choice.label.published', Article::UNPUBLISHED => 'form.page.type.status.choice.label.unpublished', Article::SCHEDULED => 'form.page.type.status.choice.label.scheduled'), 'attr' => array('data-refreshOnChange' => "true")))->add('image', 'media');
     // manage conditional related status in preset data
     $builder->get('status')->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         $data = $event->getData();
         $form = $event->getForm();
         self::manageRelatedStatus($data, $form->getParent());
     });
     // manage conditional related status in pre submit (ajax call to refresh view)
     $builder->get('status')->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
         $form = $event->getForm();
         $data = $event->getData();
         self::manageRelatedStatus($data, $form->getParent());
     });
 }
示例#2
0
 /**
  * {@inheritdoc}
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     parent::configureOptions($resolver);
     $resolver->setDefault('validation_groups', ['edition', 'Default']);
 }