Symfony2像rails一样的restful路由

时间:2014-03-11 06:54:20

标签: php symfony

我正在尝试为电子商务网站做路由,这是我想要的RESTful路由..

/Category
/Category/1
/Category/1/Product
/Category/1/Product/1

这是我到目前为止所得到的......

test_index_homepage:
    pattern:  /
    defaults: { _controller: TestIndexBundle:Default:index }
test_index_product:
    pattern: /category/{cat_id}/product/{prod_id}
    defaults: { _controller: TestIndexBundle:Product:index, cat_id : 1, prod_id : 1 }
test_index_category:
    pattern: /category/{cat_id}
    defaults: { _controller: TestIndexBundle:Category:index, cat_id : 1 }

我可以访问上面的所有网址但是/ Category和/ Category / 1 / Product实际上像/ Category / 1和/ Category / 1 / Product / 1一样工作,因为默认值为1.那么我应该如何制作它们能够在类别下显示所有类别和所有产品。

/Category <-- all categories available
/Category/1/Product <-- all products under category 1

1 个答案:

答案 0 :(得分:0)

在主页路线后添加以下内容:

test_all_category:
    pattern: /category
    defaults: { _controller: TestIndexBundle:Category:index }

test_all_products_for_category:
    pattern: /category/{cat_id}/product
    defaults: { _controller: TestIndexBundle: Product:index }

请注意,对于test_category_all,cat_id将为null,对于test_all_products_for_category,prod_id将为null,因此您需要检查该内容。