UserValidate.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\validate;
  4. use think\Validate;
  5. /**
  6. * 用户验证器
  7. */
  8. class UserValidate extends Validate
  9. {
  10. // 定义验证规则
  11. protected $rule = [
  12. 'user_name' => 'require|regex:/^[A-Za-z][A-Za-z0-9]{2,19}$/',
  13. 'nick_name' => 'require|chsDash|length:2,20',
  14. 'password' => 'require|regex:/^[A-Za-z0-9_+@%$]{6,20}$/',
  15. 'phone' => 'mobile',
  16. 'user_role' => 'integer|gt:0',
  17. 'merchant_id' => 'require|integer|gt:0',
  18. 'white_list_ip' => 'max:500',
  19. ];
  20. // 定义错误消息
  21. protected $message = [
  22. 'user_name.require' => '账号名不能为空',
  23. 'user_name.regex' => '账号名只能包含字母或数字,以字母开头,长度在3到20个字符之间',
  24. 'nick_name.require' => '昵称不能为空',
  25. 'nick_name.chsDash' => '昵称只能包含汉字、字母、数字和下划线_及破折号-',
  26. 'nick_name.length' => '昵称长度必须在2-20个字符之间',
  27. 'password.require' => '密码不能为空',
  28. 'password.regex' => '密码只能包含字母、数字及特殊字符(_+@%), 长度在6-20个字符之间',
  29. 'phone.mobile' => '手机号格式不正确',
  30. 'user_role.integer' => '角色ID必须是整数',
  31. 'user_role.gt' => '角色ID必须大于0',
  32. 'merchant_id.require' => '商户ID不能为空',
  33. 'merchant_id.integer' => '商户ID必须是整数',
  34. 'merchant_id.gt' => '商户ID必须大于0',
  35. 'white_list_ip.max' => 'IP白名单长度不能超过500个字符',
  36. ];
  37. // 定义验证场景
  38. protected $scene = [
  39. 'login' => ['user_name', 'password'],
  40. 'create' => ['user_name', 'password', 'nick_name', 'user_role', 'merchant_id'],
  41. ];
  42. }