Пользовательский formField (customForm), тип не разрешен - PullRequest
0 голосов
/ 10 января 2020

У меня есть сущность site, которая содержит коллекцию Automate сущностей ... Мне нужен такой тип поля формы: enter image description here

Я уже делаю представление и попытаться закодировать поле, но оно не работает ... Поэтому создайте форму, расширяющую AbstractType, в этой форме я поместил 3 несвязанных ввода ... (2 выбора и ввод hiddend).

Я делаю js для перемещения элемента из одного выбора в другой и сохраняю список идентификаторов на входе hiddend ... Прикрепить преобразователь к форме ...

Так что для меня этот момент мой форма загрузить коллекцию, преобразовать в строку, визуализировать форму (без значения, мне нужно переместить значение в hiddendInput, я пока не знаю, как (возможно, в шаблоне визуализации))

Мне нужно добавьте слушателя на pre_submit для сообщения о значении скрытого ...

Данные передаются в обратный преобразователь, и у меня есть newCollection ....

Код WIP моего поля :

$repository = $this->entityManager->getRepository($options['lc_data_class']);
        $builder
            ->add('lc_internal_available', ChoiceType::class, [
                'mapped' => false,
                'required' => false,
                'multiple' => true,
                'attr' => [
                    'size' => $options['lc_display'],
                ]
            ])
            ->add('lc_internal_selected', ChoiceType::class, [
                'required' => false,
                'mapped' => false,
                'multiple' => true,
                'attr' => [
                    'size' => $options['lc_display'],
                ]
            ])
            ->add('lc_internal_hidden_drive', TextType::class, [
                'required' => false,
                'mapped' => false,
            ])
            ->addViewTransformer(new CallbackTransformer(
                function ($automatesCollection) {
                    return join(',', array_map(function (Automate $automate) {
                        return $automate->getId();
                    }, $automatesCollection->toArray()));
                },
                function ($idsAutomate) use ($repository) {
                    $collection = new ArrayCollection();
                    foreach (explode(',', $idsAutomate) as $id) {
                        $collection->add($repository->find($id));
                    }
                    return $collection;
                })
            )

Но в этот момент моя форма больше не загружалась Ре, у меня есть этот вопрос без более подробной информации: enter image description here

...