自定义formField(customForm),不允许输入

时间:2020-01-10 11:20:42

标签: symfony4 formbuilder

我有一个实体site,其中包含Automate个实体的集合... 我想要这样的自定义表单字段类型: enter image description here

我已经查看过并尝试对字段进行编码,但是它不起作用... 因此,使表格扩展AbstractType,在此表格中,我放置了3个未映射的输入... (2个选择和一个隐藏的输入)。

我制作了一个用于将元素从一个选择移到另一个的js,并将ID列表保留在隐藏的输入中... 将变压器附加到表格...

所以对我来说,这时我的表单加载了集合,转换为字符串,渲染了表单(没有值,我需要将值移动到hiddendInput中,我还不知道(也许在渲染模板中) )

我需要在pre_submit上添加一个侦听器,以报告隐藏值...

数据传递到反向转换器,我有newCollection ....

我所在领域的在制品代码:

$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

0 个答案:

没有答案