簡體   English   中英

如何在Symfony 3.4中找到當前的路由模式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM