交响乐。如何使用一对多的表格创建表单汽车搜索?

Posted

技术标签:

【中文标题】交响乐。如何使用一对多的表格创建表单汽车搜索?【英文标题】:Symfony. How to create a form car search with tables one to many? 【发布时间】:2021-12-12 13:15:22 【问题描述】:

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

This is my table schema:

这是我的代码搜索表单:

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
        ]);
    

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于交响乐。如何使用一对多的表格创建表单汽车搜索?的主要内容,如果未能解决你的问题,请参考以下文章

访问表单不显示所有数据

Asp.net 如何使用实体框架删除一对多的对象

如何扁平化一对多的关系

警告:非法字符串偏移量'city'Symfony表单搜索

如何在 SQL 中使用 C# 创建列

如何在Access中使用子表单时编辑现有记录而不创建新记录?