translatableStringHelper = $translatableStringHelper; } public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('title', TextType::class) ->add('description', TextareaType::class, [ 'required' => false ]) ->add('object', StoredObjectType::class, [ 'error_bubbling' => true ]) ->add('scope', ScopePickerType::class, [ 'center' => $options['center'], 'role' => $options['role'] ]) ->add('date', ChillDateType::class) ->add('category', EntityType::class, array( 'placeholder' => 'Choose a document category', 'class' => 'ChillDocStoreBundle:DocumentCategory', 'query_builder' => function (EntityRepository $er) { return $er->createQueryBuilder('c') ->where('c.documentClass = :docClass') ->setParameter('docClass', PersonDocument::class); }, 'choice_label' => function ($entity = null) { return $entity ? $this->translatableStringHelper->localize($entity->getName()) : ''; }, )) ; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => Document::class, ]); $resolver->setRequired(['role', 'center']) ->setAllowedTypes('role', [ \Symfony\Component\Security\Core\Role\Role::class ]) ->setAllowedTypes('center', [ \Chill\MainBundle\Entity\Center::class ]) ; } }