我查看了官方的Symfony2路由文档,但我无法理解它,所以我在这里询问如何操作。
我想使用的URI是:
http://my.site.com/app_dev.php/MyWebApp/manageAccount/activate/148/123
此URL旨在使用三个非可选参数调用MyWebApp控制器的manageAccountAction方法,在本例中为:
'激活',148和' 123'。
在这种情况下,第一个参数' activate'可能有其他特定值,但始终是一个字符串,用于指示该方法要执行的操作。
中间参数是一个数字,是用户ID。 最后一个是字母数字字符串,是在对指定用户执行操作之前必须匹配的密码。
提前感谢您的帮助。
答案 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
。