2013-03-23 68 views
1

任何機會,我們可以在Symfony的做到這一點:有條件的URL /路由的Symfony2:乾淨的URL

  • 如果不是一個頁面屬性:去/category/{category}
  • 如果有一個頁面屬性:去/category/{category}/page/{page}

我需要一個只有存在頁面屬性時才能使用dd /page/{page}


到目前爲止,我只設法有這樣的:

  • 如果不是一個頁面屬性:去/category/{category}
  • 如果有一個頁面屬性:轉至/category/{category}/{page}

隨着以下:

<route id="category_view" pattern="/category/{categoryId}/page/{page}"> 
    <default key="_controller">AcmeHouseBundle:House:view</default> 
    <default key="categoryId">null</default> 
    <default key="page">1</default> 
    <requirement key="categoryId">\d+</requirement> 
    <requirement key="page">\d+</requirement> 
</route> 

所不同的是在具有/category/{category}/page/{page}代替/category/{category}/{page}

回答

2

現在不支持這種事情(直到this PR合併)。所以,你只能有兩個不同的途徑實現這一目標:

<route id="category_view" pattern="/category/{categoryId}"> 
    <default key="_controller">AcmeHouseBundle:House:view</default> 
    <default key="categoryId">null</default> 
    <default key="page">1</default> 
    <requirement key="categoryId">\d+</requirement> 
</route> 

<route id="category_view_page" pattern="/category/{categoryId}/page/{page}"> 
    <default key="_controller">AcmeHouseBundle:House:view</default> 
    <default key="categoryId">null</default> 
    <default key="page">1</default> 
    <requirement key="categoryId">\d+</requirement> 
    <requirement key="page">\d+</requirement> 
</route> 
+0

是的,謝謝@lazyhammer! – Mick 2013-03-23 00:58:27

+0

很高興幫助。並感謝與語法高亮幫助:) – lazyhammer 2013-03-23 01:03:16