• Как правильно построить Symfony Forms, при ManyToMany связи?

    @contra1 Автор вопроса
    Вдруг кому-то еще понадобится. В итоге сделал с помощью HiddenType и трансформера. HiddenType ожидает текст, в качестве значения, но в language у нас объект Language.
    public function buildForm(FormBuilderInterface $builder, array $options): void
        {
            $builder
                ->add('language', HiddenType::class)
                ->get('language')
                    ->addModelTransformer(new CallbackTransformer(
                        function ($language) {
                            return $language->getId();
                        },
                        function ($id): ?Language {
                            return $this->entityManager
                                ->getRepository(Language::class)
                                ->find($id);
                        }
                    ));
        }


    Поэтому когда подставляем значение в форму, с помощью трансформера передаем id. Когда форма отправляется на сервер, обратно переводим в объект Language. В идеале трансформер нужно перенести в отдельный класс, со всеми проверками и т.д, но тут просто в качестве примера.
    Ответ написан
    Комментировать