| // +------------------------------------------------+ namespace app\common\validate; use think\Db; use think\Validate; use tools\Crypt; class Member extends Validate { /** * 验证规则 * @var array */ protected $rule = [ 'username' => 'require|length:4,32|unique:member', 'password' => 'require|length:6,32', 'openid' => 'require', 'oldpass' => 'require|length:6,32|verifyPassword:', 'newpass' => 'require|length:6,32|different:oldpass', 'repass' => 'require|length:6,32|confirm:newpass', ]; /** * 提示信息 * @var array */ protected $message = [ 'username.require' => '用户名必须填写', 'username.length' => '用户名长度应在:1-:2位之间', 'username.unique' => '用户名已经存在', 'password.require' => '密码必须填写', 'password.length' => '密码长度应在:1-:2位之间', 'oldpass.require' => '原始密码必须填写', 'oldpass.length' => '原始密码长度应在:1-:2位之间', 'oldpass.verifyPassword' => '原始密码不正确', 'newpass.require' => '新密码必须填写', 'newpass.length' => '新密码长度应在:1-:2位之间', 'newpass.different' => '新密码不能与原始密码相同', 'repass.require' => '确认密码必须填写', 'repass.length' => '确认密码长度应在:1-:2位之间', 'repass.confirm' => '两次输入的密码不一致', 'openid.require' => '绑定失败', ]; /** * 验证场景 * @var array */ protected $scene = [ 'changepass' => ['oldpass', 'newpass', 'repass'], 'updatepass' => ['password'], 'openid' => ['openid'], 'forget' => ['newpass', 'repass'], 'register' => ['username', 'password'], 'login' => ['username' => 'require|length:4,32', 'password'], 'mobileRegister' => ['username', 'password', 'repass' => 'require|confirm:password'], ]; protected function verifyPassword($value, $rule, $data) { return Crypt::uMd5($value) == Db::name('Member')->where('id', $data['uid'])->value('password'); } }