控制器中有多少参数?
Any number of parameters in a controller?
我需要为以下问题找到解决方案:
在基本 url(比如说 "domain.org/elements")之后,我需要有一个遵循这个基本 url 的元素的层次结构,如果用户有空,可能无限地添加另一个元素任何级别,包括元素容器,例如url 例如,此层次结构末尾的一些容器和 1 个元素可能如下所示:
domain.org/elements/container-top/container-deeper/container-deeper2/element
domain.org/elements/container-top/container-deeper/container-deeper3/..../container-deeperN/element
问题是:如何在 Symfony2 控制器中识别此类路由,而不是使用像动态控制器这样的解决方案(我不想将路由保存到数据库)?
嗯,你可以通过调整正则表达式来轻松地做这样的事情:
/**
* @Route("/{parameters}", requirements={"parameters"="[^/]+(/[^/]+)*"})
*/
public function myAction($parameters)
{
$parameters = explode('/', $parameters);
// ...
}
上面的正则表达式如下:
一个或多个非正斜杠字符后跟零个或多个(正斜杠后跟一个或多个非正斜杠字符)
我需要为以下问题找到解决方案:
在基本 url(比如说 "domain.org/elements")之后,我需要有一个遵循这个基本 url 的元素的层次结构,如果用户有空,可能无限地添加另一个元素任何级别,包括元素容器,例如url 例如,此层次结构末尾的一些容器和 1 个元素可能如下所示:
domain.org/elements/container-top/container-deeper/container-deeper2/element
domain.org/elements/container-top/container-deeper/container-deeper3/..../container-deeperN/element
问题是:如何在 Symfony2 控制器中识别此类路由,而不是使用像动态控制器这样的解决方案(我不想将路由保存到数据库)?
嗯,你可以通过调整正则表达式来轻松地做这样的事情:
/**
* @Route("/{parameters}", requirements={"parameters"="[^/]+(/[^/]+)*"})
*/
public function myAction($parameters)
{
$parameters = explode('/', $parameters);
// ...
}
上面的正则表达式如下:
一个或多个非正斜杠字符后跟零个或多个(正斜杠后跟一个或多个非正斜杠字符)