/** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('title')->add('content')->add('priorityId', EntityType::class, ['class' => Priority::class, 'query_builder' => function ($repository) use($options) { return $repository->getPriorities($options, true); }])->add('deadline', DateTimeType::class)->add('parentTaskId', EntityType::class, ['class' => Task::class, 'query_builder' => function ($repository) use($options) { return $repository->getTasks($options, true); }, 'required' => false])->add('status', ChoiceType::class, ['choices' => Task::getStatuses()])->add('assigned', EntityType::class, ['class' => User::class, 'multiple' => true, 'mapped' => false, 'query_builder' => function ($repository) use($options) { return $repository->getUsers($options, true); }, 'data' => $options['data']->assigned])->add('followers', EntityType::class, ['class' => User::class, 'multiple' => true, 'mapped' => false, 'query_builder' => function ($repository) use($options) { return $repository->getUsers($options, true); }, 'data' => $options['data']->followers])->add('labels', EntityType::class, ['class' => Labels::class, 'multiple' => true, 'mapped' => false, 'query_builder' => function ($repository) use($options) { return $repository->getLabels($options, true); }, 'data' => $options['data']->labels, 'required' => false]); }