Edit.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace app\validate\admin\user;
  3. use app\model\admin\User;
  4. use think\Validate;
  5. class Edit extends Validate
  6. {
  7. //数组顺序就是检测的顺序
  8. protected $rule = [
  9. 'id' => 'require|checkId:',
  10. 'username' => 'require|length:2,30|checkUsername:',
  11. 'nickname' => 'require|length:2,30',
  12. 'password' => 'length:6,30|confirm:re_password',
  13. 'is_super_manager' => 'require',
  14. 'status' => 'require',
  15. ];
  16. //定义内置方法检验失败后返回的字符
  17. protected $message = [
  18. 'username.require' => '用户名不能为空',
  19. 'username.length' => '用户名长度2-30',
  20. 'nickname.require' => '昵称不能为空',
  21. 'nickname.length' => '昵称长度2-30',
  22. 'password.length' => '密码长度6-30',
  23. 'password.confirm' => '两次密码输入不相同',
  24. 'is_super_manager.require' => '请设置用户是否为超级管理员',
  25. 'status.require' => '请设置账号的状态',
  26. ];
  27. public function checkId($id, $rule, $data)
  28. {
  29. if ($id == 1) {
  30. if ($data['is_super_manager'] == 2) {
  31. return '不允许将初始化用户编辑成非超级管理员';
  32. }
  33. if ($data['status'] == 2) {
  34. return '不允许禁用初始化用户';
  35. }
  36. }
  37. return true;
  38. }
  39. //验证用户名的唯一性
  40. protected function checkUsername($username, $rule, $data){
  41. $userId = User::getFieldByUsername($username,'id');
  42. if($userId && $userId != $data['id']){
  43. return '用户名已存在';
  44. }
  45. return true;
  46. }
  47. }