2014-11-22 52 views
2

我想有这样的网址:Symfony2的指数路线2参数

example.com 
example.com/category 
example.com/category/name 

我的路线:

default_page: 
    path:  /{name} 
    defaults: { _controller: CatalogWebBundle:Default:index } 
default_page: 
    path: /
    defaults: { _controller: CatalogWebBundle:Default:index } 
default_page: 
    path:  /{name}/{category} 
    defaults: { _controller: CatalogWebBundle:Default:index } 

正常工作,只有

example.com/category 

什么是错我的路线?

错误是:

No route found for "GET /category/name" 
No route found for "GET /" 
+2

我想这可能是因为你把它们全部设置为'default_page'?或者仅仅是为了这个例子? – ChadSikorra 2014-11-22 14:21:15

+0

@ChadSikorra,但这可能是1页'indexAction' – Wizard 2014-11-22 14:22:40

+4

是的,但他们仍然需要不同的名称为YAML否则一些将被忽略,你会得到意想不到的结果。或者,也许我不明白一些明显的东西?时间抢我的早晨咖啡哈哈。 – ChadSikorra 2014-11-22 14:43:09

回答

2

使你的内部名称是唯一的,它应该正常工作。

default_page_X: 
    path:  /{name} 
    defaults: { _controller: CatalogWebBundle:Default:index } 
default_page_Y: 
    path: /
    defaults: { _controller: CatalogWebBundle:Default:index } 
default_page_Z: 
    path:  /{name}/{category} 
    defaults: { _controller: CatalogWebBundle:Default:index } 
3

括号是变量。当你键入.com /类别时,它将进入你的第一条路线,其中“category”作为变量名的值

+0

是的,我需要传递变量通过获得'example.com/category1/name1' – Wizard 2014-11-22 14:20:19

+0

哦好吧,我没有看到这里的任何错误.. – oligan 2014-11-22 14:26:09

+0

除非你在服务器上prod,你没有重写规则? – oligan 2014-11-22 14:30:48