Symfony -在URL查询(get方法)中使用下划线或点号代替FormType中的括号

rhfm7lfc  于 2022-12-04  发布在  其他
关注(0)|答案(1)|浏览(130)

我在使用GET方法的URL查询中搜索到使用 * 下划线 * 或 * 点 * 而不是 * 方括号 * 与FormType。
当前
实际上,我在提交表单时看到了以下URL:

/path?fieldName%5BsubFieldName%5D=toto

或者这个(解码):

/path?fieldName[subFieldName]=toto

预期值

我想要这个

/path?fieldName_subFieldName=toto

或者这样:

/path?fieldName.subFieldName=toto

尝试

我在表单配置中尝试了一些选项,但我不知道它们对应的是什么,我也不知道在哪里搜索(使用什么术语)。

flseospp

flseospp1#

这是Symfony表单组件的正常行为。要避免这种情况,您应该使用命名的表单生成器,如下所示:

public function controllerMethod(FormFactory $formFactory) {
    $form = $formFactory->createNamed(
        '',                 // Your form name
        MyFormType::class, // Your form type
        [],               // data
        []               // form options
    );

    // Do something
}

对于按钮,您必须将其从Form类(我的意思是SubmitType类)中删除,并手动将其添加到html中(在表单呈现中使用传统的<button></button>)。

相关问题