如何为获取和发布使用相同的操作/模板?

时间:2012-12-03 03:52:54

标签: php templates symfony-1.4

我有一个Symfony 1.4应用程序,我继承了维护和更新。我无法理解/弄清楚的一件事是如何为加载和帖子使用相同的模板/操作名称。

来自Struts2背景,我可以为这两种方法重用相同的动作,但是有一个指向“输入”方法,而一个帖子指向“执行”方法。但我似乎无法在Symfony中找到类似的工作流程。

鉴于在get和post中使用了相同的模板,并且我想使用相同的操作名称,如何为每种类型指定不同的方法名称?

例如,对于登录表单,我想创建一个Login操作,其中“input”方法基本上显示模板,并且在提交时,它将转到execute方法以在重定向之前验证数据或用错误重新显示表单。

我意识到我可以在执行方法的顶部添加if($ request-> isMethod('POST')),但我认为必须有更好/更常规的方法来执行此操作。我认为在symfony中必须有一些东西允许这样做,但我一直无法找到它。

有人能指出我正确的方向吗?

1 个答案:

答案 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 }