如何在onBeginRequest中获取URL命名参数?

时间:2013-07-24 11:11:48

标签: php yii

使用参数化路由时,有没有办法访问$_GET事件处理程序中重写的onBeginRequest变量?

我的路线定义为:

'<_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;
}

如果请求上述两个URL中的哪一个,我如何确定定义$ _GET ['id']?

我正在使用Yii版本1.1.13。

1 个答案:

答案 0 :(得分:3)

您可以通过让url manager组件解析当前请求url:

来实现此目的
$app = Yii::app();
$app->getUrlManager()->parseUrl($app->getRequest());

这将根据您的路线适当填充$_GET$_REQUEST。它也会返回活动路径(控制器/动作对),但我没有对返回值做任何事情,因为它看起来好像你不需要它。