1UserExtend先定义一个用户类继承yii\web\User
2在配置里将user
class改成这个类UserExtend
3重写public function can($permissionName, $params = [], $allowCaching = true)
这个方法
public function can($permissionName, $params = [], $allowCaching = true){ if($this->isGuest){ return false; //都没登陆当然不通过了 } $identity = $this->identity; if($permissionName == 'vip1'){ return $identity->vip == 1; }elseif($permissionName == 'vip2'){ return $identity->vip == 2; } }
接下来假设用户数据库有个vip字段,0表示普通用户,1是VIP1,2就是VIP2
配置权限验证的role为vip1
或vip2
4
public function behaviors(){ return [ 'access' => [ 'class' => \yii\filters\AccessControl::className(), 'rules' => [ [ 'allow' => true, 'roles' => ['vip1'], ], ], ], ]; }