如何在Symfony2控制器中使用Annotation为三个参数定义路径?

时间:2016-12-16 11:31:31

标签: symfony parameters routing

我查看了官方的Symfony2路由文档,但我无法理解它,所以我在这里询问如何操作。

我想使用的URI是:

http://my.site.com/app_dev.php/MyWebApp/manageAccount/activate/148/123

此URL旨在使用三个非可选参数调用MyWebApp控制器的manageAccountAction方法,在本例中为:

'激活',148和' 123'。

在这种情况下,第一个参数' activate'可能有其他特定值,但始终是一个字符串,用于指示该方法要执行的操作。

中间参数是一个数字,是用户ID。 最后一个是字母数字字符串,是在对指定用户执行操作之前必须匹配的密码。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

有些想法:

/**
 * @Route("/MyWebApp/manageAccount/{action}/{userId}/{passcode}", requirements={
 *     "action" = "activate|someaction|otheraction",
 *     "userId" = "\d+",
 *     "passcode" = "[\d\w]+"
 * })
 */
public function manageAccountAction($action, $userId, $passcode)
{
    // ...
}
  

...必须匹配才能对指定用户执行操作。

您似乎正在尝试解决路由阶段中业务逻辑的问题,但这并不完全正确。路由通常只定义查询的格式,而不定义语义

但如果您确实需要,可以创建custom ParamConverter