使用 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