如何改变一个表单的动作和方法
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.4,不再维护。
读这个页面的更新版本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
/ / AppBundle /控制器/ DefaultController.php名称空间AppBundle\控制器;使用ob娱乐下载\包\FrameworkBundle\控制器\控制器;使用ob娱乐下载\组件\形式\扩展\核心\类型\DateType;使用ob娱乐下载\组件\形式\扩展\核心\类型\SubmitType;使用ob娱乐下载\组件\形式\扩展\核心\类型\TextType;类DefaultController扩展控制器{公共函数newAction(){/ /……美元形式=美元这- >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
/ / AppBundle /控制器/ DefaultController.php名称空间AppBundle\控制器;使用ob娱乐下载\包\FrameworkBundle\控制器\控制器;使用AppBundle\形式\TaskType;类DefaultController扩展控制器{公共函数newAction(){/ /……美元形式=美元这- >createForm (TaskType::类,美元任务,(“行动”= >美元这- >generateUrl (“target_route”),“方法”= >“得到”]);/ /……}}
最后,您可以覆盖行动和方法通过他们的模板形式()
或者是form_start ()
辅助功能:
1 2
{# app /资源/视图/ / new.html违约。树枝#}{{form_start(形式,{“行动”:路径(“target_route”)、“法”:“得到”})}}
请注意
如果表单的方法不是GET或POST,但把补丁或删除,Symfony会插入一个隐藏字段的名称ob娱乐下载_method
存储这个方法。表单将提交在一个正常的POST请求,但Symfony的路由器能够检测ob娱乐下载_method
参数,将它视为一个补丁或删除请求。看到框架配置引用(FrameworkBundle)选择。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。