如何改变一个表单的动作和方法

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 4.1,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

如何改变一个表单的动作和方法

默认情况下,表单将提交通过一个HTTP POST请求的URL相同形式呈现。有时你想要改变这些参数。你可以在几个不同的方式这样做。

如果你使用FormBuilder建立表单,您可以使用setAction ()setMethod ():

  • 框架的使用
  • 独立使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25
/ / src /控制器/ DefaultController.php名称空间应用程序\控制器;使用ob娱乐下载\\FrameworkBundle\控制器\AbstractController;使用ob娱乐下载\组件\形式\扩展\核心\类型\DateType;使用ob娱乐下载\组件\形式\扩展\核心\类型\SubmitType;使用ob娱乐下载\组件\形式\扩展\核心\类型\TextType;DefaultController扩展AbstractController{公共函数(){/ /……美元形式=美元- >createFormBuilder (美元任务)- >setAction (美元- >generateUrl (“target_route”))- >setMethod (“得到”)- >add (“任务”,TextType::类)- >add (“dueDate”,DateType::类)- >add (“保存”,SubmitType::类)- >getForm ();/ /……}}

请注意

这个示例假设您已经创建了一个路线target_route指向控制器处理表单。

当使用一个表单类型类,您可以通过行动和方法形式选择:

  • 框架的使用
  • 独立使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/ / src /控制器/ DefaultController.php名称空间应用程序\控制器;使用应用程序\形式\TaskType;使用ob娱乐下载\\FrameworkBundle\控制器\AbstractController;DefaultController扩展AbstractController{公共函数(){/ /……美元形式=美元- >createForm (TaskType::类,美元任务,(“行动”= >美元- >generateUrl (“target_route”),“方法”= >“得到”]);/ /……}}

最后,您可以覆盖行动和方法通过他们的模板形式()或者是form_start ()辅助功能:

1 2
{#模板/ / new.html违约。树枝#}{{form_start(形式,{“行动”:路径(“target_route”)、“法”:“得到”})}}

请注意

如果表单的方法不是GET或POST,但把补丁或删除,Symfony会插入一个隐藏字段的名称ob娱乐下载_method存储这个方法。表单将提交在一个正常的POST请求,但Symfony的路由器能够检测ob娱乐下载_method参数,将它视为一个补丁或删除请求。看到框架配置引用(FrameworkBundle)选择。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。