2012-07-09 81 views
0

我期待在Symfony2中設置一些路由,但我努力爲文件夾設置動態路由。Symfony2路由與文件夾(包含多個正斜槓)

我想設置接受以下路線:/department/sub-department/sub-sub-department/product-url.html

從該航線所有我需要的是產品網址和其餘更多的是搜索引擎優化。我遇到的問題是路由在URL中可能有許多部門級別,所以我需要在產品url之前忽略所有內容。

這裏好像是「/」是問題,所以有一種方法可以避開斜槓。

如果我沒有在路由使用任何部門的,我可以用這個:

product: 
    pattern: /{url}.html 
    defaults: { _controller: CompanyBundle:System:pageRequest } 

所以,基本上,我需要這樣的:

product: 
    pattern: /{department}/{url}.html 
    defaults: { _controller: CompanyBundle:System:pageRequest } 

凡{}部門可以是一個或多個有正斜槓的部門。

這可能嗎?

+1

模式被解釋爲一個正則表達式,所以你可以把它寫就像作爲一個正則表達式。 – 2012-07-09 12:29:25

回答

1

有一個關於它的好文章在cookbook

您必須明確允許/是通過指定一個更寬鬆的正則表達式的參數的一部分。

在你的情況下,路由定義必須是

product: 
    pattern: /{department}/{url}.html 
    defaults: { _controller: CompanyBundle:System:pageRequest } 
    requirements: 
     department: ".+" 
+0

這工作得很好!感謝gilden – 2012-07-09 12:58:45

1
product: 
    pattern: /{url}.html 
    defaults: { _controller: CompanyBundle:System:pageRequest, department: ~ } 

product_department: 
    pattern: /{department}/{url}.html 
    defaults: { _controller: CompanyBundle:System:pageRequest } 
    requirements: 
     department: '[\w\d\/\-]+' 
相關問題