如何路由到两个不同的行动'使用注释在同一个控制器中的函数 - Symfony2

时间:2015-11-11 11:52:53

标签: php symfony symfony-2.7

最近我从Symfony 2.4转到了Symfony 2.7

所以我在关注新文档。现在说我在同一个控制器中有2 action functions

public function indexAction() {}

public function changeRateAction()

以前我会使用routing.yml

路由它们
change_interest_rate_label:
    path: /change_interest_rate
    defaults: { _controller: appBundle:appInterestRateChange:index }

change_interest_rate_action_label:
    path: /change_interest_rate_and_archived_action
    defaults: { _controller: appBundle:appInterestRateChange:changeRate }

现在在2.7文档中,注释是鼓励的。在controller文件内

/**
 * @Route("/home", name="homepage")
 */

这将触发控制器文件中包含的action方法。但是,如何为同一控制器文件中包含的不同URL编写2种方法的注释?

这意味着我有indexAction& changeRateAction在同一个控制器文件中。我想使用index函数路由url /home,使用changeRate函数路由/change。如何使用注释执行此操作?我知道如何使用routing.yml

执行此操作

1 个答案:

答案 0 :(得分:3)

您真的在方法上使用注释路由,而不是控制器

您只需在每个方法之前指定路线。在你的情况下,它将是这样的:

/**
 * @Route("/home", name="homepage")
 */
public function indexAction() {
    ...
}

/**
 * @Route("/change", name="changerate")
 */
public function changeRateAction() {
    ...
}

请务必在文档中阅读有关路由的更多信息:http://symfony.com/doc/current/book/routing.html