我有一个Symfony 1.4应用程序,我继承了维护和更新。我无法理解/弄清楚的一件事是如何为加载和帖子使用相同的模板/操作名称。
来自Struts2背景,我可以为这两种方法重用相同的动作,但是有一个指向“输入”方法,而一个帖子指向“执行”方法。但我似乎无法在Symfony中找到类似的工作流程。
鉴于在get和post中使用了相同的模板,并且我想使用相同的操作名称,如何为每种类型指定不同的方法名称?
例如,对于登录表单,我想创建一个Login操作,其中“input”方法基本上显示模板,并且在提交时,它将转到execute方法以在重定向之前验证数据或用错误重新显示表单。
我意识到我可以在执行方法的顶部添加if($ request-> isMethod('POST')),但我认为必须有更好/更常规的方法来执行此操作。我认为在symfony中必须有一些东西允许这样做,但我一直无法找到它。
有人能指出我正确的方向吗?
答案 0 :(得分:1)
您正在寻找的是路由。您可以在Symfony中路由HTTP请求方法。
以下是文档:http://symfony.com/legacy/doc/reference/1_4/en/10-Routing
您想要做的事情的例子将是这样的结构:
login_input:
url: /login
class: sfRequestRoute
param: { module: login, action: input }
requirements: { sf_method: get }
login_execute:
url: /login
class: sfRequestRoute
param: { module: login, action: execute }
requirements: { sf_method: post }