/**
  * @param FormBuilderInterface $builder
  * @param array $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('keyWords', TextType::class, array('required' => false))->add('searchInTitle', CheckboxType::class, array('required' => false))->add('priceInterval', SearchIntervalType::class, array('required' => false))->add('category', EntityType::class, array('class' => 'FBAdvertBundle:Category', 'choice_label' => 'name', 'multiple' => false, 'expanded' => false, 'query_builder' => function (EntityRepository $repository) {
         return $repository->createQueryBuilder('c')->innerJoin('c.parent', 'p')->addSelect('p');
     }, 'group_by' => 'parent.name', 'placeholder' => 'advert.choose_category', 'required' => false))->add('intervals', CollectionType::class, array('entry_type' => SearchIntervalType::class, 'required' => false))->add('properties', CollectionType::class, array('entry_type' => PropertyType::class, 'required' => false));
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         $search = $event->getData();
         if ($search === null) {
             return;
         }
         $fields = $this->em->getRepository('FBAdvertBundle:Field')->getFields();
         if ($fields !== null) {
             foreach ($fields as $field) {
                 $already = false;
                 foreach ($search->getProperties() as $p) {
                     if ($p->getField() === $field) {
                         $already = true;
                         break;
                     }
                 }
                 if (!$already) {
                     if ($field->getHasInterval()) {
                         $interval = new SearchInterval();
                         $interval->setField($field);
                         $search->addInterval($interval);
                     } else {
                         $property = new Property();
                         $property->setField($field);
                         $search->addProperty($property);
                     }
                 }
             }
         }
     });
 }
 /**
  * Add intervals
  *
  * @param \FB\AdvertBundle\Entity\SearchInterval $intervals
  * @return AdvertSearch
  */
 public function addInterval(\FB\AdvertBundle\Entity\SearchInterval $intervals)
 {
     $this->intervals[] = $intervals;
     $intervals->setSearch($this);
     return $this;
 }