程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Symfony 5.1 提交表单的动态生成 - 不显示大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Symfony 5.1 提交表单的动态生成 - 不显示?

开发过程中遇到Symfony 5.1 提交表单的动态生成 - 不显示的问题如何解决?下面主要结合日常开发的经验,给出你关于Symfony 5.1 提交表单的动态生成 - 不显示的解决方法建议,希望对你解决Symfony 5.1 提交表单的动态生成 - 不显示有所启发或帮助;

我开始写这篇新帖子是因为尽管做了很多研究,但我还是被困住了。

我有三个实体。

员工 -> 多对一 -> RefSocIEty

员工 -> 多对一 -> RefSite

RefSocIEty -> OnToMany -> RefSite

RefSocIEty -> OnToMany -> 员工

RefSite -> OnToMany -> 员工

RefSite -> ManyToOne -> RefSocIEty

我正在使用 FormEvent 的 symfony 文档; https://symfony.com/doc/current/form/dynamic_form_modification.html#dynamic-generation-for-submitted-forms

我希望在我的员工表单中,当我选择一个社团时,它只向我提供与该社团相关的网站。

这是我已经完成的。我尝试了很多不同的方法。当我手动传递 SocIEtyID 时,它会识别它并向我显示所需的站点。

此外,我认为阻塞的不是 JavaScript 方面。你有什么想法吗?

employeeType.php

class employeeType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder,array $options)
    {
        $builder
            ->add('socIEte',EntityType::class,[
                'class' => RefSocIEty::class,'placeholder' => 'Sélectionnez votre société','mapped' => false,])
        ;
        
        $formModifIEr = function (FormInterface $form,?RefSocIEty $socIEty)
        {
            $sites = null === $socIEty ? [] : $socIEty->getSites();

            $form->add('site',[
                'class' => RefSite::class,'placeholder' => 'Sélectionnez votre site','choices' => $sites,]);
        };
        $builder->addEventListener(
            FormEvents::PRE_SET_DATA,function (FormEvent $event) use ($formModifIEr)
            {
                $data = $event->getData();
                $formModifIEr($event->getForm(),$data->getSocIEte());
            }
        );
        $builder->get('socIEte')->addEventListener(
            FormEvents::POST_submit,function (FormEvent $event) use ($formModifIEr)
            {
                $socIEty = $event->getForm()->getData();
                $formModifIEr($event->getForm()->getParent(),$socIEty);
            }
        );
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => employee::class,]);
    }
}

index.HTMl.twig

{{ form_start(employeeForm) }}
   {{form_row(employeeForm.socIEtE) }}
   {{form_row(employeeForm.sitE) }}
{{ form_end(employeeForm) }}

   <script>
        var $socIEty = $('#employee_socIEte');
        $socIEty.change(function () {
            var $employeeForm = $(this).closest('employeeForm');
            var data = {};
            data[$socIEty.attr('name')] = $socIEty.val();
            //console.log(data)
            $.AJAX({
                url: $employeeForm.attr('action'),type: $employeeForm.attr('method'),data: data,success: function (HTML) {
                    //console.log(data)
                    $('#employee_site').replaceWith(
                        $(HTML).find('#employee_site')
                    );
                }
            });
        });
    </script>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的Symfony 5.1 提交表单的动态生成 - 不显示全部内容,希望文章能够帮你解决Symfony 5.1 提交表单的动态生成 - 不显示所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:-5.1不显示