如果单击“保存”按钮,则在编辑表单中将执行action.class.php文件的executeUpdate操作。但是当用户按下编辑表单的保存按钮时,我想调用自定义的executeUpdateSometing动作函数而不是executeUpdate动作。怎么可以实现呢?
答案 0 :(得分:1)
有几种方法可以做到这一点,但两者都依赖于路由的一些变化。
在代码<form>
中,您可以更改操作属性<form action="">
,以输入指向自定义操作的其他路线,例如:
<form id="my_form" method="POST" action="<?php echo url_for('@route_to_custom_update')?>">
//form fields go here
</form>
当用户点击提交按钮时,这将通过指向客户更新操作的自定义路线提交表单。
创建一个jQuery(或JS)函数,用于侦听表单提交操作,然后通过自定义路由提交表单。
您可以通过更新现有路径来更改routing.yml
文件中的路由
update_form:
url: /update/url
param: { module: your_module, action: updatesomething}
或添加新路线&amp;在表单action或jQuery Ajax调用中使用它
something_update_form:
url: /something/update/url
param: { module: your_module, action: updatesomething}
注意:如果您添加其他路线,则该网址需要与现有更新网址不同。
Symfony 1.4 documentation有关于表单提交的更多详细信息&amp;路由