[英]How to find the current route pattern in Symfony 3.4?
像在security.yml中一樣- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
我想在路由模式比/admin
延遲的情況下在eventListener中執行代碼
如果您正在收聽Symfony內核事件,則可以通過在事件上調用getRequest()
來從事件中檢索當前請求。 您可能必須檢查它是否是當前請求,即您沒有在處理子請求,但是在此我將省略它。
一旦有了請求,檢查路由是否與模式匹配或未被模式捕獲就像執行preg_match()
一樣簡單,或者在更簡單的情況下,只需進行如下字符串比較:
if (strpos($request->getPathInfo(), '/admin/') === 0) {
return
}
// Do your thing
當您的路由以/admin/
開頭時,這將跳過事件,並在不符合此管理模式的情況下執行您輸入的內容而不是注釋。
如果要檢查某個路由名稱是否匹配,還可以從請求中獲取_route
屬性:
$routeName = $request->attributes->get('_route');
然后,您可以檢查路由器以獲取有關該路由的其他信息,處理路由名稱,例如,通過檢查某個前綴並執行其他所需的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.