路由在 Symfony2 中不起作用
Routes not working in Symfony2
我有一个非常奇怪的问题。我将新操作附加到控制器,将其注册到路由 yml 文件中。 route:debug 显示可用路线。但是,当我尝试前往此 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 }
当我替换并设置它时,一切正常。
检查您是否在您的路线中忘记了Params。 (或者你可能在末尾添加一个不需要的“/”)
也正如 Matteo 所说,清除您的缓存(php app/console cache:clear)并向我们提供代码
路由的处理就像它们是一个列表一样,就像它试图提高效率的任何计算机功能一样。
因此,当它找到与给定 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}
的变量可以是字符串“dashboard”,因此满足列出的第一条路线并且不会传递给下一条路线(您想要的路线)。
重新排序的路线;
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 }
通过重新排序,您所说的是匹配公司与字符串仪表板,如果不是,则将第二个参数作为变量传递。
我有一个非常奇怪的问题。我将新操作附加到控制器,将其注册到路由 yml 文件中。 route:debug 显示可用路线。但是,当我尝试前往此 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 }
当我替换并设置它时,一切正常。
检查您是否在您的路线中忘记了Params。 (或者你可能在末尾添加一个不需要的“/”)
也正如 Matteo 所说,清除您的缓存(php app/console cache:clear)并向我们提供代码
路由的处理就像它们是一个列表一样,就像它试图提高效率的任何计算机功能一样。
因此,当它找到与给定 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}
的变量可以是字符串“dashboard”,因此满足列出的第一条路线并且不会传递给下一条路线(您想要的路线)。
重新排序的路线;
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 }
通过重新排序,您所说的是匹配公司与字符串仪表板,如果不是,则将第二个参数作为变量传递。