Routing Symfony 2.0-如何使用阵列参数创建路由?

Routing Symfony 2.0-如何使用阵列参数创建路由?,routing,symfony,Routing,Symfony,我想创建一个与数组匹配的路由 例如: Name_show: pattern: /Name/{names} defaults: { _controller: testBundle:Name:showNames } 节目名称: 模式:/Name/{names} 默认值:{u控制器:testBundle:Name:showNames} 其中,{names}包含一个名称数组,如: array([1]=>“托马斯”、[2]=>“安东”、[3]=>“贝尔塔”) 如何处理?S

我想创建一个与数组匹配的路由

例如:

Name_show: pattern: /Name/{names} defaults: { _controller: testBundle:Name:showNames } 节目名称: 模式:/Name/{names} 默认值:{u控制器:testBundle:Name:showNames} 其中,
{names}
包含一个名称数组,如:

array([1]=>“托马斯”、[2]=>“安东”、[3]=>“贝尔塔”)

如何处理?Symfony 2.0的响应

警告:preg_match()要求参数2为字符串,数组给定


在symfony doc中找不到任何解决方案。

您可以将其用作字符串,只需
序列化()
前后的内容即可


据我所知,symfony2不允许在路由中使用数组,如果使用数组,URL会是什么样子?URL必须是字符串,因此序列化数组并将其作为字符串传递可能是更好的选择。

您必须验证路由,因此可以使用一些人为的事件处理(请参阅),或者使用一个控制器,如果名称在数组中或显示错误页面,则可以直接重定向到新URL


此外,您还可以尝试使用它来替代默认的Symfony2路由器(支持基于条令的路由等)。

我同意@JamesHalsall关于序列化的说法。我还想补充一点,序列化的字符串在用作GET参数之前应该进行urlencoded。

带有数组的URL如下所示:
http://domain.com?array[]=lorem&array[]=ipsum
@user2019515是真的,但我不确定symfony2是否允许这样做