php - Symfony 4 更改默认表单名称
问题描述
我创建了 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(),
]);
}
解决方案
如果要修改表单名称,请使用 createNamed() 方法:
$form1 = $this
->get('form.factory')
->createNamed('my_name', TextType::class, $task);
您甚至可以通过将其设置为空字符串来完全禁止该名称。
推荐阅读
- python - Django_select2:如何使用请求数据过滤 ModelSelect2Widget 查询集?(Django_tables2 + Django_filter +Django_select2 )
- angular6 - 如何在 Angular 6 中创建反应性问题选项表单(数据来自服务)
- web3 - 如何接收待处理的交易哈希?
- node.js - Cloud Build for Google App Engine - 灵活失败,出现通用“退出状态 1”
- reactjs - 反应路由器只渲染第一条路线
- blazor - 如何在 blazor 组件中呈现模板?
- node.js - 无法在开玩笑测试中使用构造函数创建池实例
- d3.js - d3 - 添加元素而不追加
- maximo - 错误 500:嵌套异常是:psdi.util.MXSystemException: BMXAA4160E - 发生重大异常
- xml - 如何检查xslt中的前一个节点值?