使用参数化路由时,是否可以访问 onBeginRequest
事件处理程序中重写的 $_GET
变量?
我的路线定义为:
'<_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。
最佳答案
您可以通过让 url 管理器组件解析当前请求 url 来完成此操作:
$app = Yii::app();
$app->getUrlManager()->parseUrl($app->getRequest());
这将根据您的路线适本地填充 $_GET
和 $_REQUEST
。它还将返回事件路由( Controller /操作对),但我不会对返回值执行任何操作,因为看起来您在这里不需要它。
关于php - 如何获取onBeginRequest中的URL命名参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17832297/