谁一开始就是大神?

在执行actionXxxx方法之前对$_GET或$_POST进行处理[2.0]

如题;

我用yii2.0构建了一个service层,我调用service的时候对参数进行过签名,在yii2.0的service端获取参数的时候我想先进行相关处理。然后将处理后的参数还原成yii能接受的。具体如下:

yii标准请求地址:
http://host/?r=site/get-userinfo&id=8

签名过的请求地址:
http://host/?r=site/get-userinfo&param=这里是包含了id等相关参数的密文

并且service用的yii内置的RESTful,控制器方法如下:

class SiteController extends \yii\rest\ActiveController{

    public $modelClass = '';

    public function actionGetUserinfo($id) {
        # 相关操作
    }
}

使用标准请求地址是能访问成功的,如何能让我签名过的地址能访问呢,也就是说如何能在调用actionGetUserinfo()方法之前让我去改变$_GET['id']这个值,有没有提供这样的过滤器或者方法。

yii小白一枚,望各位大神不吝赐教。先谢过了!

处理参数的核心逻辑在yii\base\Action::runWithParams里面,你可以选择重写这部分,但是这会影响整个框架的所有代码。
建议是重写控制器的runAction逻辑,实现一个YourActiveController
然后,相关的逻辑继承这个控制器
两种方法
1.写一个behaviour。
2.重写beforeAction方法,在当前类,或者写个父类继承。

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 在执行actionXxxx方法之前对$_GET或$_POST进行处理[2.0]

评论 抢沙发

登录

找回密码

注册