条件URL /路由symfony2:干净的URL

时间:2013-03-23 00:30:17

标签: symfony

我们有机会在Symfony中做到这一点:

  • 如果 页面属性:转到/category/{category}
  • 如果 页面属性:转到/category/{category}/page/{page}

仅当存在页面属性时才需要添加/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}

1 个答案:

答案 0 :(得分: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>