我们有机会在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}
。
答案 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>