php - 如何获取onBeginRequest中的URL命名参数?

标签 php yii

使用参数化路由时,是否可以访问 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/

相关文章:

php - PDO 代码和 PHP 未定义错误

php - 在 YII 中一次插入多行

php - 存储站点全局变量

ajax - 来自 Yii CListView 的 "Post"参数

php 分页编号页面链接

javascript - 无法使用 jquery 重定向到页面

php - 在 IIS7 集群上运行的 PHP 上调试 500 Internal Server Error

php - Yii CDBCommand getText 显示 SQL 中的所有变量

javascript - Fancybox 点击与 Yii CGridView 中的元素绑定(bind)和 ajax 分页

javascript - 调整 youtube 视频的大小(在页面上和点击)