Yii:如何在URL中添加常规参数

时间:2014-06-10 07:34:43

标签: php yii url-rewriting url-routing

我想在URL中添加一些通用参数。 E.g:

http://example.com/user/join?ref=bazuka_007

http://example.com/comments/123?simpleAuthToken=29c1urnfu9fh42183c43h1hc43814h0c

如果我想跟踪用户访问我网站的位置或自动验证他们。

如何组织两件事:

  • 混合美化的URL和参数。
  • 处理代码中的通用参数。

1 个答案:

答案 0 :(得分:1)

对于第一个示例,您可以按如下方式指定路由器规则:

'rules'=>array(
    ...
    array('user/index/username/<username>', 'pattern'=>'user/<username:\w+>*'),
    ...
)

http://example.com/user/join?ref=bazuka_007

将成为: http://example.com/user/join/ref/bazuka_007

nd get参数将是

$_GET[username] = 'join';
$_GET[ref] = 'bazuka_007';

第二个例子可以与第一个例子类比。

<强> UPD:

您还可以指定更常用的规则:

'rules'=>array(
    ...
    array('<controller>/index/param/<param>', 'pattern'=>'<controller:\w+>/<param:\.+>*'),
    ...
)

<强> UPD2:

我想如果您想为所有请求执行通用逻辑,那么您应该在基本控制器中实现逻辑并从中扩展所有控制器。

此外,您可以在控制器中的每个操作之前调用每个控制器中的beforeAction()方法。