【发布时间】:2019-11-08 09:26:17
【问题描述】:
我创建了 2 个未链接到同一控制器中的任何实体的表单。 每个表单都有它自己的提交按钮。 我从不使用第二种形式的提交功能。 我认为这是因为这 2 个表单具有相同的默认名称“表单”。 问题是如何更改表单名称? 低于我所做的
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(),
]);
}
【问题讨论】:
-
您是否在浏览器中查看了生成的 html 以了解发生了什么?发布到同一个 url 的两个表单有点不寻常。您可以让它们发布到不同的控制器操作。
-
你在
if ($form1)里面做什么?你会回复吗?顺便说一句,您没有向表单添加任何约束,也没有任何模型链接到它。在我看来,您的验证没有被触发是正常的 -
是的,我认为这绝对是个坏主意。我会将我的 2 个表单合并为一个并创建多个提交按钮。
-
@Mcsky:在 if($form1) 中,我将根据 form1 的结果创建一些数据以插入到 form2 中...
-
是的,这看起来很复杂,您可以考虑使用form event listener 来配置您的表单以实现提交数据的功能
标签: php forms symfony symfony4