当我使用此配置时:
#/app/config/routing.yml
_org_demo:
resource: "@OrgDemoBundle/config/routing.yml"
#Org/DemoBundle/config/routing.yml
_home:
path: /{name}
defaults: { _controller: OrgDemoBundle:Home:index, name: world}
/
和/xyz
都可以正常加载。
但是,当我使用新配置时
#/app/config/routing.yml
_org_demo:
resource: "@OrgDemoBundle/config/routing.yml"
prefix: /hello
#Org/DemoBundle/config/routing.yml
_home:
path: /{name}
defaults: { _controller: OrgDemoBundle:Home:index, name: world}
在这种情况下/hello/xyz
加载但不加/hello/
,我收到错误No route found for "GET /hello/"
。为什么/hello/
在这种情况下无法加载?如何解决此问题?
答案 0 :(得分:2)
这是正确的你可以加载/hello
。修复不是错误。
使用硬编码的URL不是一个好习惯。您应该使用生成的URL。
从控制器USE生成URL:
$this->generateUrl('_home'); //Will return /helo
$this->generateUrl('_home', array('name' => 'Bangladesh')) // will return /hello/Bangladesh
在twig模板上,您可以使用它们来获得类似的输出:
{{ path('_home') }}
{{ path('_home', {name: 'Bangladesh' }) }}
如果您想处理这两个网址,可以使用this cookbook