php - 交响乐。如何使用一对多的表格创建表单汽车搜索?
问题描述
我希望用户首先选择“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
]);
}
}
解决方案
前段时间我遇到了同样的问题,我能找到的解决方案是创建由ajax
请求提供的选择输入。例如:用户选择汽车类型/卡车而不是您创建的ajax request
类型your controller
并将卡车类型的品牌返回到您的树枝模板。因此,您的整个页面不会重新加载,而只会重新加载其中的一部分并获取品牌。依此类推,您使用 javascript 向品牌提供您选择的输入
推荐阅读
- sql - SELECT * 复制表的结果,但选择每个字段不
- linux - 在 max_sectors_kb 处写入 IO
- laravel - Laravel - belongsToMany 的关系和最后一个 belongsToMany 的关系
- javascript - Highcharter:更新股票图时保持选定的缩放
- javascript - 运行 react js 脚本时遇到问题
- node.js - 将 Node.js 脚本转换为 Firebase 函数
- html - EasyAutoComplete 的高度受 div 高度限制
- leptonica - 如何从控制台安装 LEPTONICA 的 VERSION?
- r - 具体的小数位数取决于数字的大小
- c++ - DirectX9 CreateDevice 在 C 中失败,但在 C++ 中成功