我有一个FormBuilder
构建的表单,例如
,每行上都有一个(提交)按钮,用于删除条目。
在查看生成的HTML代码时,按钮在方案中的名称类似于
listForm[leadPartners][0][remove]
listForm[leadPartners][1][remove]
...
到目前为止,这对我来说很有意义。
问题是,当表单由某个remove-buttons提交时,我尝试获取该按钮的名称,通过调用$listForm->getClickedButton()->getName()
来确定返回的名称,以确定哪个按钮是提交的按钮一直是remove
,我找不到一种方法来获取按钮的编号,以知道它属于我的哪个实体。
问题:如何知道按下了哪个按钮?
表单类型:
class LeadPartnerFormType extends AbstractType
{
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => LeadPartner::class,
));
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class)
->add('remove', SubmitType::class);
}
}
相关的树枝代码
{% for partner in listForm.lead_partners %}
<div class="form-group row">
<div class="col-10" >{{ form_widget(partner.name) }}</div>
<div class="col-2">{{ form_widget(partner.remove) }}</div>
</div>
{% endfor %}
答案 0 :(得分:-1)
您可以按照官方文档https://symfony.com/doc/current/form/multiple_buttons.html进行操作 但是,为什么您需要以这种方式进行清除? Symfony很好地处理了收集项的删除,您甚至可以使用回调来手动处理它们。无需以这种方式进行。