2012-09-11 68 views
0

我試過echo $_GET['id'],var_dump($_GET),但都沒有給出想要的結果。'urlFormat'設置爲'path'時無法獲取GET查詢參數

在應用程序的main.php文件中啓用urlFormat後,我無法再獲取名爲「id」的查詢參數。

URL的的格式爲:的index.php /控制器/動作/參數(我沒有一個htaccess文件)

眼下的URL看起來像:用var_dump($_GET)只返回index.php/article/read/daily_proxy_list

array 
    'daily_proxy_list' => string '' (length=0) 

這裏就是我如何創建URL指向該位置:

$this->createUrl('article/read', array('id'=>$key)); 

我的問題是,我如何獲得名爲'id'(或任何其他名稱)的查詢參數?

回答

3

從警予文檔

Since version 1.1.4, Yii has added support for automatic action parameter binding. That is, a controller action method can define named parameters whose value will be automatically populated from $_GET by Yii. 

因此,爲了獲得價值$_GET['id'],您只需一個參數$id添加到actionRead()。警予將自動$_GET['id']

public function actionRead($id) 
{ 
    var_dump($id); 
} 

填充它欲瞭解更多信息和例子參見Yii documentation

+0

這並沒有解決問題。它似乎只在我使用默認的'id'查詢參數時出現。如果我使用任何其他名稱,如'index.php/article/read?name = daily_proxy_list',它可以正常工作。其他情況也可以正常工作:'index.php/article/read/id/daily_proxy_list'(特別包括'id'),'index.php/article/read?id = daily_proxy_list'(不使用Mod_Rewrite作爲查詢參數,哪種逃避了這一點) –

+0

你有沒有在應用程序配置中指定的任何url規則?然後發佈爲 – dInGd0nG

+0

的編輯否,除了''urlFormat'=>'path','showScriptName'=> false,',我沒有對標準main.php配置文件進行任何更改。 –

0

您是否嘗試過使用parseUrl與$ _SERVER ['QUERY_STRING']或類似?

+0

沒有,但我猜測有這樣做的更實用的方式(如內置誼功能),而不是試圖將URL分成不同的部分。 –