如何改变表单的动作和方法
编辑本页警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.1,现已不再维护。
读本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。
如何改变表单的动作和方法
默认情况下,表单将通过HTTP POST请求提交到呈现表单的同一个URL。有时你想改变这些参数。您可以通过几种不同的方式来做到这一点。
如果你使用FormBuilder要构建表单,可以使用setAction ()
而且setMethod ()
:
1 2 3 4 5 6 7
$形式=$这->createFormBuilder ($任务)->setAction ($这->generateUrl (“target_route”))->setMethod (“得到”)->add (“任务”, TextType::类)->add (“dueDate”, DateType::类)->add (“保存”, SubmitType::类)->getForm ();
请注意
这个例子假设您已经创建了一个名为target_route
它指向处理表单的控制器。
当使用表单类型类时,你可以将动作和方法作为表单选项传递:
1 2 3 4 5 6 7
使用AppBundle\形式\TaskType;/ /……$形式=$这->createForm (TaskType::类,$任务,数组(“行动”=>$这->generateUrl (“target_route”),“方法”=>“得到”));
方法来重写模板中的操作和方法形式()
或者是form_start ()
辅助功能:
- 嫩枝
- PHP
1 2
{# app /资源/视图/ / new.html违约。树枝#}{{form_start(形式,{“行动”:路径(“target_route”)、“法”:“得到”})}}
1 2 3 4 5 6 7
<!——app/Resources/views/default/newAction.html.php——><?php回声$视图[“形式”]->开始($形式,数组(// path()方法在Symfony 2.8中引入。欧宝娱乐app下载地址在2.8之前,//你必须使用generate()。“行动”=>$视图[“路由器”]->路径(“target_route”),“方法”=>“得到”,))? >
请注意
如果表单的方法不是GET或POST,而是PUT、PATCH或DELETE, Symfony将插入一个包含名称的隐藏字段欧宝娱乐app下载地址_method
它存储这个方法。表单将在正常的POST请求中提交,但是Symfony的路由器能够检测到欧宝娱乐app下载地址_method
参数,并将其解释为PUT, PATCH或DELETE请求。看到FrameworkBundle配置(“框架”)选择。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。