Yii2 獲取當前請求的路由資訊

Wi1dcard發表於2019-06-20

如題,有兩種方案實現。

方案一:

Yii::$app->controller->route;

方案二:

Yii::$app->requestedRoute

看過原始碼後才知道這倆的區別。

方案一是根據當前請求已建立的 module / controller / action,也就是實際處理當前請求的模組、控制器、方法所組合而成的路由,絕對規範。

方案二是根據 UrlManager::routeParam 等配置,解析請求 URL 取得的訪問路由,不一定規範,但對使用者可見。

通常情況下兩種方法應該是等效的;某些特殊場景,例如修改過根據路由解析建立控制器的過程、內部反代重寫過 URL 等,則有可能導致兩方得到的值不一致。

根據不同業務場景使用不同的方法,對症下藥。

我感謝自己平凡,敢愛敢恨沒負擔。
我感謝自己不凡,可愛可恨都包攬。

相關文章