Person.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace app\common\validate;
  3. use think\Validate;
  4. use app\common\model\Person as PersonModel;
  5. class Person extends Validate {
  6. protected $rule = [
  7. 'username' => 'require|max:50|unique:un_person',
  8. 'password' => 'require',
  9. 'name' => 'require|max:100',
  10. 'idCard' => 'require|checkIdCard',
  11. 'sex' => 'require',
  12. 'phone' => 'require|mobile|unique:un_person',
  13. 'address' => 'max:100',
  14. 'email' => 'email'
  15. ];
  16. protected $message = [
  17. 'username.require' => '请填写账号!',
  18. 'username.max' => '账号最多50个字符!',
  19. 'username.unique' => '该账号已被注册',
  20. 'password.require' => '请填写密码!',
  21. 'name.require' => '请输入姓名',
  22. 'name.max' => '姓名最多100个字符!',
  23. 'idCard.require' => '请填写证件号码!',
  24. 'sex.require' => '性别必须选择',
  25. 'phone.require' => '请填写手机号',
  26. "phone.mobile" => "请填写正确的手机号",
  27. 'phone.unique' => '该手机号已被注册',
  28. 'address.max' => '联系地址最多100个字符!',
  29. 'email.email' => '不是正确的邮箱格式'
  30. ];
  31. protected function checkIdCard($value, $rule, $data = []) {
  32. if (!\app\common\api\IdCardApi::isValid($value) && !preg_match("/^([a-zA-z]|[0-9]){5,17}$/", $value) && !preg_match("/^[a-zA-Z0-9]{6,10}$/", $value) && !preg_match("/^([0-9]{8}|[0-9]{10})$/", $value))
  33. return "请填写正确的证件号码!";
  34. $info = PersonModel::where('idCard', $value)->where('active', 1)->where('id', '<>', $data['id'])->find();
  35. if ($info) {
  36. return "该证件号码已被注册";
  37. } else {
  38. return true;
  39. }
  40. }
  41. protected $scene = [
  42. 'add' => ['username', 'password', 'name', 'idCard', 'sex', 'phone'],
  43. 'basic' => ['address'],
  44. ];
  45. }