我对Symfony还是很陌生,我正在寻找一种在表单中动态创建选择类型字段的方法。
实际上,我有几种产品可以通过表格中的query_builder获取。 在展示了产品和价格之后,我想要一个选择下拉列表,以便用户可以选择要获得的产品数量。
实际上,在我的构建器表单中,我借助查询构建器来获取产品,并获得+/- 30种产品,但是此数字可以更改。
问题是我想要与产品一样多的下拉菜单,直到现在我的构建器看起来像这样:
return $builder
->add('price', EntityType::class ,[
'class'=> Price::class,
'query_builder' => function (PriceRepository $pr) use ($goldenOptions, $currentCompany){
return $pr->getPrice($goldenOptions, $currentCompany->getOrder()->getCompanyType(), $currentCompany->getOnboardingRevenues(), true);
},
'expanded'=>true,
'multiple'=>true,
'placeholder'=>true
])
->add('quantity',ChoiceType::class,[
'choices'=>['mensuel'=>true,'trimestriel'=>false,'1'=>1,'2'=>2,'3'=>3,'4'=>4],
'expanded'=>false,
'multiple'=>false
])
->add('submit', SubmitType::class,[
'attr' => ['class' => 'save'],
'label'=>'Sauvegarder',
'attr' => ['class' => 'btn btn-purple btn-rounded']
])
问题是这样我只能得到1个下拉列表,而我要几个。我设法用javascript重现了它,但是当我处理请求并从中获取数据时,Symfony只识别出第一个“数量”字段。
如果有人对如何创建多核“数量”字段有想法,而symfony则感谢他们。也许是事件监听器,但我不知道我该怎么做。
答案 0 :(得分:0)
我猜这是针对某种电子商务应用程序的,其中您有一个装有产品的购物车,并希望选择数量。
我将拥有一个“购物车”实体,其中包含许多“ CartProduct”,每个实体都具有一个“ Product”作为关系,并具有数量等其他属性。
使用此方法,您可以拥有一个CartForm,其中可以嵌入任意数量的CartProductForm及其数量等。
与文档中的示例相同,其中“任务”为“购物车”,“标签”为“ CartProducts”: https://symfony.com/doc/current/form/form_collections.html