我想在URL中添加一些通用参数。 E.g:
http://example.com/user/join?ref=bazuka_007
或
http://example.com/comments/123?simpleAuthToken=29c1urnfu9fh42183c43h1hc43814h0c
如果我想跟踪用户访问我网站的位置或自动验证他们。
如何组织两件事:
答案 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()
方法。