Php Yii:仅为管理员用户启用配置文件

Php Yii:仅为管理员用户启用配置文件,php,yii,profiling,Php,Yii,Profiling,如何仅为管理员用户启用DB分析?若我在配置中静态地定义它,那个么应用程序还不知道用户是否是管理员。作为建议,在控制器中,您可以执行以下操作: public function init(){ $role=Rbac::role(Yii::app()->user->id); if($role=="admin"){ Yii::app()->db->enableProfiling=true; } return parent::init

如何仅为管理员用户启用DB分析?若我在配置中静态地定义它,那个么应用程序还不知道用户是否是管理员。

作为建议,在控制器中,您可以执行以下操作:

public function init(){
    $role=Rbac::role(Yii::app()->user->id);
    if($role=="admin"){
        Yii::app()->db->enableProfiling=true;
    }
    return parent::init();
}
请注意,我假设我们有一个名为
Rbac
的类,它有一个通过用户id获取用户角色的方法(
role()

另外,如果您有一个模块,您可以将其检查到与控制器相同的
init()方法中。即使您有一个基本控制器类,也可以这样做。如果您需要跳过某些特定操作,也可以在controller
beforeAction()
方法中执行此操作

为了更优雅地执行此操作,您可以创建一个
行为
,并将其附加到控制器或将其放入
预加载
配置文件中

另一种方法是在用户登录
UserIdentity
类的过程中执行此操作,以设置启用分析的状态,或者在联机登录成功后执行此操作