UserValidate.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. 'username' => 'require|regex:/^[A-Za-z][A-Za-z0-9]{5,19}$/', // 必须|字母开头,且只包含字母数字,长度6-20
  13. 'nickname' => 'require|chsDash|length:2,20', // 汉字、字母、数字和下划线_及破折号-|长度6-20
  14. 'password' => 'require|regex:/^[A-Za-z0-9_+@%$]{6,20}$/', // 必须,以字母开头,长度6-20
  15. 'user_role' => 'integer|egt:0',
  16. 'merchant_id' => 'require|integer|gt:0',
  17. ];
  18. // 定义错误消息
  19. protected $message = [
  20. 'user_name.require' => '用户名不能为空',
  21. 'user_name.regex' => '用户名只能包含字母或数字,以字母开头,长度在6到20个字符之间',
  22. 'user_name.unique' => '用户名已存在',
  23. 'password.require' => '密码不能为空',
  24. 'password.regex' => '密码只能包含字母、数字及特殊字符(_+@%), 长度在6-20个字符之间',
  25. 'nickname.require' => '昵称不能为空',
  26. 'nickname.chsDash' => '昵称只能包含汉字、字母及数字,长度在2-20个字符之间',
  27. 'user_role.integer' => '角色ID必须是整数',
  28. 'user_role.egt' => '角色ID必须大于等于0',
  29. 'merchant_id.require' => '商户ID不能为空',
  30. 'merchant_id.integer' => '商户ID必须是整数',
  31. 'merchant_id.gt' => '商户ID必须大于0',
  32. ];
  33. // 定义验证场景
  34. protected $scene = [
  35. 'login' => ['user_name', 'password'],
  36. 'create' => ['user_name', 'password', 'nick_name', 'user_role', 'merchant_id'],
  37. 'update' => ['nick_name', 'user_role'],
  38. ];
  39. }