Symfony 奏鸣曲与动态形式

Symfony 奏鸣曲与动态形式,symfony,symfony-sonata,sonata,Symfony,Symfony Sonata,Sonata,我做了几次搜索,但我仍然有一个问题 我想制作一个动态表单。我想在另一个select的功能中使用select。 这是我的configureFormFields: protected function configureFormFields(FormMapper $formMapper) { $emIndustry = $this->modelManager ->getEntityManager('*\*\*\

我做了几次搜索,但我仍然有一个问题

我想制作一个动态表单。我想在另一个select的功能中使用select。 这是我的configureFormFields:

protected function configureFormFields(FormMapper $formMapper)
    {
        $emIndustry = $this->modelManager
                           ->getEntityManager('*\*\*\*\Entity\Industry')
        ;

        $query = $emIndustry->getRepository(*:Industry')
                            ->getFindAllParentsQueryBuilder()
        ;

        $formMapper
            ->add('company')
            ->add('industry', 'sonata_type_model', [
                'attr' => [
                    'onchange' => 'submit()',
                ],
                'query'    => $query,
                'required' => false,
            ])
            ->add('subIndustry', 'sonata_type_model', [
                'choices' => [],
                'required' => false,
            ])
        ;

        $builder = $formMapper->getFormBuilder();
        $factory = $builder->getFormFactory();
        $subject = $this->getSubject();
        $modelManager = $this->getModelManager();

        $builder->addEventListener(FormEvents::PRE_SET_DATA, function(FormEvent $event) use($formMapper, $subject, $emIndustry, $modelManager, $factory) {
            $form = $event->getForm();

            if(!is_null($subject->getIndustry())) {
                $query = $emIndustry->getRepository('*:Industry')
                    ->getFindChildrenByParentQueryBuilder($subject->getIndustry())
                ;

                $form
                    ->add(
                        $factory->createNamed('subIndustry', 'sonata_type_model', null, [
                            'class'    => '*\*\*\*\Entity\Industry',
                            'query'    => $query,
                            'required' => false,
                        ])
                    )
                ;
            }
        });
    }
当我更改所选行业的值时,提交我的表格没有问题。但在第二个select子行业中什么也没有发生,因为:我的$subject对象的所有属性都为null

你知道为什么吗?有没有制作动态表单的最佳方法

谢谢你的帮助


AlexL

我猜您需要依赖下拉列表您可能需要查看和使用帮助请参见我猜您需要依赖下拉列表您可能需要查看和使用帮助请参见我猜您需要依赖下拉列表您可能需要查看和使用帮助请参见