【问题标题】:Symfony Route parameters not working when prefix is used使用前缀时 Symfony 路由参数不起作用
【发布时间】:2014-03-30 14:55:59
【问题描述】:

当我使用这个配置时:

#/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/ 在这种情况下无法加载,我该如何解决?

【问题讨论】:

    标签: php symfony routing yaml


    【解决方案1】:

    没错,不过你可以加载/hello。这不是要修复的错误。

    使用硬编码 URL 不是一个好习惯。您应该使用生成的 URL。

    从控制器USE生成URL:

    $this->generateUrl('_home');   //Will return /helo
    $this->generateUrl('_home', array('name' => 'Bangladesh')) // will return /hello/Bangladesh
    

    在树枝模板上,您可以使用它们来获得类似的输出:

    {{ path('_home') }}
    {{ path('_home', {name: 'Bangladesh' }) }}
    

    如果您想同时处理这两个网址,您可以使用this cookbook

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-10
      • 2019-04-30
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      相关资源
      最近更新 更多