Example #1
0
 /**
  * @return BannerCollection
  */
 protected function getCollection()
 {
     if (null === $this->collection) {
         $this->collection = $this->manager->getBanners();
     }
     return $this->collection;
 }
 /**
  * @param FormBuilderInterface $builder
  * @param array $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $callback = function ($object, ExecutionContextInterface $context) use($builder) {
         $position = $this->manager->getPositionByName($object);
         /** @var BannerPosition $data */
         $data = $builder->getData();
         if ($data->getId() && $position && $data->getId() == $position->getId()) {
             return;
         }
         if ($position) {
             $context->buildViolation('A position with this name already exists')->addViolation();
         }
     };
     $builder->add('name', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType', ['label' => 'Name', 'attr' => ['placeholder' => 'Name'], 'constraints' => [new NotBlank(), new Callback(['callback' => $callback])]])->add('description', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType', ['label' => 'Position description', 'attr' => ['placeholder' => 'Position description'], 'constraints' => [new NotBlank()]])->add('banner', 'Symfony\\Bridge\\Doctrine\\Form\\Type\\EntityType', ['class' => 'Wucdbm\\Bundle\\BannerBundle\\Entity\\Banner', 'choice_label' => 'name', 'placeholder' => 'Banner', 'attr' => ['class' => 'select2'], 'required' => false])->add('isActive', 'Symfony\\Component\\Form\\Extension\\Core\\Type\\CheckboxType', ['label' => 'Active', 'required' => false]);
 }