使用 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
中的 myPageAction
的 myPageAction
。它有一個名為 parameter
的引數,預設值為。該值僅在與正規表示式\d+
匹配時有效。對於此路由,僅接受 HTTP 方法 GET
和 PUT
。condition
是示例中的表示式,除非 User-Agent 標頭與 firefox 匹配,否則路由將不匹配。你可以通過利用傳遞到表示式中的兩個變數來執行表示式中所需的任何複雜邏輯:context
(RequestContext)和 request
(Symfony Request)。
引數值為 10 的生成路徑可能看起來像/application/content/page/10
。