2013-07-24 15 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适当地根据自己的路线。它也会返回主动路由(控制器/动作对),但是我没有对返回值做任何事情,因为它看起来像你不需要在这里。