RegisterValidate.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace app\api\validate;
  3. use think\Validate;
  4. use app\common\model\user\User;
  5. use app\common\logic\SmsLogic;
  6. class RegisterValidate extends Validate
  7. {
  8. protected $regex = ['password' => '^(?=.*[a-zA-Z0-9].*)(?=.*[a-zA-Z\\W].*)(?=.*[0-9\\W].*).{6,20}$'];
  9. protected $rule = [
  10. 'mobile' => 'require|mobile|checkMobile',
  11. 'password' => 'require|regex:password',
  12. 'code' => 'requireIf:check_code,1|checkCode',
  13. 'client' => 'require|in:1,2,3,4,5,6'
  14. ];
  15. protected $message = [
  16. 'mobile.require' => '请输入手机号',
  17. 'mobile.mobile' => '无效的手机号码',
  18. 'password.require' => '请输入密码',
  19. 'password.regex' => '密码格式错误',
  20. 'code.requireIf' => '请输入验证码',
  21. 'client.require' => '请输入客户端',
  22. 'client.in' => '无效的客户端',
  23. ];
  24. public function checkCode($value, $rule, $data)
  25. {
  26. $res = SmsLogic::check($data['message_key'], $data['mobile'], $value);
  27. if (false === $res) {
  28. return SmsLogic::getError();
  29. }
  30. return true;
  31. }
  32. public function checkMobile($value, $data, $rule)
  33. {
  34. $where = [
  35. 'del' => 0,
  36. 'mobile' => $value
  37. ];
  38. //检查手机号是否已存在
  39. $user = User::where($where)->findOrEmpty();
  40. if (!$user->isEmpty()) {
  41. return '此手机号已被使用';
  42. }
  43. return true;
  44. }
  45. }