6], [['password'],'match', 'pattern' => '/(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[-#_*%$])^.{6,16}$/', 'message' => '密码需包含大小写字母以及字符殊符号 #-_*%$组成', ], ['password', 'compare', 'message' => '两次密码必须一致'], ]; } public function attributeLabels() { return [ 'old_password' => '原密码', 'password' => '新密码', 'password_repeat' => '重复输入密码' ]; } public function save() { if(!$this->validate()) return $this->getModelError(); $admin = Admin::findOne([ 'id' => \Yii::$app->admin->identity->id, ]); if(!$admin->validatePassword($this->old_password)){ return [ 'code' => 1, 'msg' => '原密码不正确' ]; } $flag = $admin->setPassword($this->password); if($flag){ //@DONE 消息提醒 return [ 'code' => 0, 'msg' => '密码修改成功' ]; } else { return $this->getModelError($admin); } } }