首页 > 解决方案 > 交响乐。如何使用一对多的表格创建表单汽车搜索?

问题描述

我希望用户首先选择“car_types”表中列出的汽车类型。选择车型(轿车/卡车)后,解锁与所选车型关联的车型选择。选择车型后,解锁与品牌相关的车型选择。等等...

这是我的表架构:

这是我的代码搜索表单:

class SearchCarsType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
            ->add('typ',EntityType::class,[
                'class' => CarTypes::class,
                'choice_label' => 'name'
            ])
            ->add('mark',EntityType::class,[
                'class' => Brand::class,
                'choice_label' => 'name'
            ])
            ->add('model',EntityType::class,[
                'class' => Models::class,
                'choice_label' => 'name'
            ])
            ->add('generation',EntityType::class,[
                'class' => Generations::class,
                'choice_label' => 'name'
            ])
            ->add('car_body',EntityType::class,[
                'class' => CarBodys::class,
                'choice_label' => 'name'
            ])
            ->add('engine',EntityType::class,[
                'class' => Engines::class,
                'choice_label' => 'name'
            ])
            ->add('equipment',EntityType::class,[
                'class' => Equipment::class,
                'choice_label' => 'name'
            ])

            ->add('Submit',SubmitType::class)
        ;
    }

    public function configureOptions(OptionsResolver $resolver): void
    {
        $resolver->setDefaults([
            // Configure your form options here
        ]);
    }
}

标签: phpformssymfonyentity

解决方案


前段时间我遇到了同样的问题,我能找到的解决方案是创建由ajax请求提供的选择输入。例如:用户选择汽车类型/卡车而不是您创建的ajax request类型your controller并将卡车类型的品牌返回到您的树枝模板。因此,您的整个页面不会重新加载,而只会重新加载其中的一部分并获取品牌。依此类推,您使用 javascript 向品牌提供您选择的输入


推荐阅读