2017-01-26 246 views
1

是否有可能在螺栓cms中有重复路线?我改变了我的routing.yml的路线,看起来像这样螺栓重复路线

language: 
    path: /{locale}/{slug} 
    defaults: { _controller: controller.frontend:template, template: 'page.twig' } 

它使用的前端控制器上的模板函数呈现page.twig。所以当我以这种方式将变量转储到我的page.twig中时

{{ dump(app.request.get('locale')) }} 
{{ dump(app.request.get('slug')) }} 

这会输出。

"en" 
"stackoverflow" 

但我想要一个重复的路线,就像这样工作。

language: 
    path: /{locale}/{slug**} 
    defaults: { _controller: controller.frontend:template, template: 'page.twig' } 

所以,当我访问一个网址,如:

bolt.dev/en/slug1/slug2 

我将在名为塞看法接收阵列,它会输出

[slug1, slug2] 
+0

不要使用截图注入源。这不是可以搜索的。 –

回答

2

博尔特使用的Symfony路由引擎盖下,并没有数组参数的概念。

你可以做的是捕捉整个URL您的区域后,然后在枝条分开,所以:

language: 
    path: /{locale}/{slug} 
    defaults: 
     _controller: controller.frontend:template 
     template: 'page.twig' 
    requirements: 
     slug: .+ 

这使得斜线被捕捉为塞的一部分,因此,假设您的网址是/en/slug1/slug2然后做app.request.get('slug')将返回slug1/slug2然后你就可以在拆分嫩枝:

{% for slug in app.request.get('slug')|split('/') %} 
    {{ slug }} 
{% endfor %}