2017-01-26 244 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 %}