路由不在Symfony2中工作

时间:2015-01-19 10:41:41

标签: symfony routing

我有一个非常奇怪的问题。我向控制器添加新动作,将其注册到路由yml文件中。 route:debug显示路由为可用。但是当我试图去这个网址时我得到错误,那条路线不存在。我做错了什么?旧路线正常工作。 这条路线下面的路线:

vputi_company:
path:     /company/{company_id}
defaults: { _controller: VputiCompanyBundle:Company:showCompany, company_id: 0 }

钓到:

vputi_company_dashboard:
path:     /company/dashboard
defaults: { _controller: VputiCompanyBundle:Company:companyDashboard }

当我更换它并将其设置在上面时,一切正常。

2 个答案:

答案 0 :(得分:1)

路线被处理就好像它们是一个列表一样,就像它试图提高效率的任何计算机功能一样 因此,当它找到与给定URL匹配的路由时,它会运行该路由,然后停止。

您的示例路线;

vputi_company:
path:     /company/{company_id}
defaults: { _controller: VputiCompanyBundle:Company:showCompany, company_id: 0 }
vputi_company_dashboard:
path:     /company/dashboard
defaults: { _controller: VputiCompanyBundle:Company:companyDashboard }

在您的示例路由中,{company_id}的变量可以是字符串" 信息中心",因此可以完成列出的第一条路线,而不会传递到下一条路线(你想要的路线)。

重新排序的路线;

vputi_company_dashboard:
    path:     /company/dashboard
    defaults: { _controller: VputiCompanyBundle:Company:companyDashboard }
vputi_company:
    path:     /company/{company_id}
    defaults: { _controller: VputiCompanyBundle:Company:showCompany, company_id: 0 }

通过重新排序你所说的匹配公司的字符串仪表板,如果没有,那么将第二个参数作为变量传递。

答案 1 :(得分:0)

检查您的路线中是否忘记了Params。 (或者你可能会添加一个不需要的" /"最后)

另外,Matteo说清除你的缓存(php app / console cache:clear)并为我们提供代码