使用 YAML 进行路由

路由配置包含在 app/config/config.yml 文件中,默认为 app/config/routing.yml 文件。

从那里,你可以链接到你自己的路由配置

# app/config/routing.yml

app:
    resource: "@AppBundle/Resources/config/routing.yml"

它还可能包含多个应用程序全局路由。

在你自己的绑定中,你可以配置具有两个目的的路由:

  • 匹配请求,以便为请求调用正确的操作。
  • 从名称和路由参数生成 URL。

以下是 YAML 路由配置的示例:

# src/AppBundle/Resources/config/routing.yml

my_page:
    path: /application/content/page/{parameter}
    defaults:
        _controller: AppBundle:Default:myPage
        parameter: 42
    requirements:
        parameter: '\d+'
    methods: [ GET, PUT ]
    condition: "request.headers.get('User-Agent') matches '/firefox/i'"

该路线名为 my_page,并在要求时拨打 AppBundle 中的 myPageActionmyPageAction。它有一个名为 parameter 的参数,默认值为。该值仅在与正则表达式\d+匹配时有效。对于此路由,仅接受 HTTP 方法 GETPUTcondition 是示例中的表达式,除非 User-Agent 标头与 firefox 匹配,否则路由将不匹配。你可以通过利用传递到表达式中的两个变量来执行表达式中所需的任何复杂逻辑:context(RequestContext)和 request(Symfony Request)。

参数值为 10 的生成路径可能看起来像/application/content/page/10