2013-07-24 16 views
2

使用參數化路線時,有沒有辦法在我的onBeginRequest事件處理程序中訪問重寫的$_GET變量?如何獲取onBeginRequest中的URL命名參數?

我的路線定義爲:

'<_c:\w+>/<_a:\w+>/<id:\d+>' => '<_c>/<_a>' 

我的事件處理程序是:

'onBeginRequest' => function($event) { 
    /* 
    site.com/posts/edit/1 - empty (bad) 
    site.com/posts/edit/?id=1 - not empty(good)   
    */ 
    var_dump($_GET); 
    die; 
} 

如何確保$ _GET [「身份證」]是指不管是哪的以上兩個網址是被要求的?

我正在使用Yii版本1.1.13。

回答

3

您可以通過具有URL管理器組件解析當前請求的URL做到這一點:

$app = Yii::app(); 
$app->getUrlManager()->parseUrl($app->getRequest()); 

這將填充$_GET$_REQUEST適當地根據自己的路線。它也會返回主動路由(控制器/動作對),但是我沒有對返回值做任何事情,因爲它看起來像你不需要在這裏。