在 Yii 1.x 開發中,常需取得當前請求的 URL、域名、IP、提交方式等資訊。本文整理 15 個常用情境,附上程式碼與預期輸出,方便快速查閱。
當前訪問網址:https://localhost/CMS/public/index.php?r=news&id=1
| 需求 | 程式碼 | 輸出結果 |
|---|---|---|
| 完整域名 (含協定) | Yii::app()->request->hostInfo | https://localhost |
| 當前 URL (不含域名) | Yii::app()->request->getUrl() | /CMS/public/index.php?r=news&id=1 |
| 使用者返回網址 | Yii::app()->user->returnUrl | /CMS/public/index.php |
| 首頁網址 (相對路徑) | Yii::app()->homeUrl | /CMS/public/index.php |
| 應用程式基底 URL | Yii::app()->request->baseUrl | /CMS/public |
| 網站根目錄相對路徑 | Yii::app()->baseUrl | /CMS/public |
提示:使用Yii::app()->baseUrl產生連結時,建議尾端加上/,如<a href="<?php echo Yii::app()->baseUrl; ?>/">Home</a>,避免路徑錯誤。
| 需求 | 程式碼 |
|---|---|
| 客戶端 IP | Yii::app()->request->userHostAddress |
| 判斷是否 POST | Yii::app()->request->isPostRequest |
| protected 實體路徑 | Yii::app()->basePath |
| 上一頁 URL (Referrer) | Yii::app()->request->urlReferrer |
| 當前 Action ID | Yii::app()->getController()->getAction()->id |
| 專案根目錄實體路徑 | dirname(Yii::app()->basePath) |
| 取得 GET/POST 參數 | Yii::app()->request->getParam('id') |
config/main.php 加入 'timeZone'=>'Asia/Chongqing'。$this->refresh() 重導向至 GET 請求。若使用 Yii 2,語法改為:
Yii::$app->request->hostInfoYii::$app->request->url (等同 getUrl)Yii::$app->request->isPostYii::$app->request->referrer