控制器中有多少参数?

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);
    // ...
}

上面的正则表达式如下:

一个或多个非正斜杠字符后跟零个或多个(正斜杠后跟一个或多个非正斜杠字符)