我在同一个控制器中创建了两个没有链接到任何实体的窗体。每个表单都有自己的提交按钮。我从不转到第二个表单的提交函数。我想这是因为这两个表单有相同的默认名称'form‘。问题是如何更改表单名称?下面是我所做的
public function index(Request $request)
{
$form1 = $this->createFormBuilder()
->add('sn', TextType::class, [
'required' => false,
])
->add('search', SubmitType::class, ['label' => 'Search'])
->getform();
$form1->handleRequest($request);
if ($form1->isSubmitted() && $form1->isValid()) {
//Do something
}
$form2 = $this->createFormBuilder();
$form2->add('Agree', CheckboxType::class, [
'label' => 'Agree',
'required' => false,
]);
$form2->add('detail', SubmitType::class, ['label' => 'Detail']);
$form2 = $form2->getForm();
$form2->handleRequest($request);
if ($form2->isSubmitted() && $form2->isValid()) {
//Do something else
}
return $this->render('search/index.html.twig', [
'form1' => $form1->createView(),
'form2' => $form2->createView(),
]);
}
发布于 2019-11-08 10:22:01
如果要修改表单名称,请使用createNamed()方法:
$form1 = $this
->get('form.factory')
->createNamed('my_name', TextType::class, $task);
您甚至可以通过将名称设置为空字符串来完全隐藏该名称。
https://stackoverflow.com/questions/58763762
复制