Bra*_*age 0 symfony-forms symfony bootstrap-4
我创建了一个带有选项卡的页面(使用引导程序),并且所有选项卡都有自己的表单。而且它们都工作得很好。我的问题是当我收到表单错误时,我想打开错误所在的选项卡。
我当前的控制器代码:
public function add(Request $request, EntityManagerInterface $em): Response {
$this->denyAccessUnlessGranted('ROLE_USER');
$entityAdd = new \App\Entity\add();
$form = $this->createForm(\App\Form\Add::class, $entityAdd);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
Run Code Online (Sandbox Code Playgroud)
AddFormType.php 中的函数
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add(...)
->add(...)
->add(...)
->getForm()
;
}
Run Code Online (Sandbox Code Playgroud)
我不是自己创建表单,我使用的是 symfony 表单组件,但我不确定如何修改表单方法以将表单哈希(例如 /add#list-tab1)添加到表单方法中。
{{ form_start(AddForm) }}
{{ form_row(AddForm.name1) }}
{{ form_row(AddForm.name2) }}
{{ form_row(AddForm.save) }}
{{ form_end(AddForm) }}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用第三个参数传递哈希值createForm method:
$form = $this->createForm(
\App\Form\Add::class,
$entityAdd,
['action' => '#list-tab1']
);
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用该方法并检索文件中该方法setAction()中的选项:buildForm()AddFormType.php
$builder
->setAction($options['action'])
->add(...)
Run Code Online (Sandbox Code Playgroud)
注意:仅在方法中使用哈希setAction()(而不是完整路由),只有在将表单提交到当前路由时才有效。
您必须替换#list-tab1为真实的选项卡 ID。
| 归档时间: |
|
| 查看次数: |
624 次 |
| 最近记录: |