AdminUser.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Http\Requests\Manager;
  3. use App\Http\Requests\BaseRequest;
  4. use Illuminate\Validation\Rule;
  5. /**
  6. * 账号管理
  7. *
  8. * */
  9. class AdminUser extends BaseRequest
  10. {
  11. /**
  12. *
  13. * @return array
  14. */
  15. public function rules()
  16. {
  17. // 编辑时排除ID
  18. $id = request('uid', 0);
  19. // 非重规则
  20. $unique = Rule::unique('admin')->where(function ($query) {
  21. return $query->where([['username', '=', request('username', '')]]);
  22. })->ignore($id, 'uid');
  23. // 非重规则
  24. $phoneUnique = Rule::unique('admin')->where(function ($query) {
  25. return $query->where([['phone', '=', request('phone', '')]]);
  26. })->ignore($id, 'uid');
  27. // 规则
  28. return [
  29. 'username' => ['required', $unique, 'max:20'],
  30. 'phone' => ['required', 'phone', $phoneUnique],
  31. 'uid' => 'required|integer|gt:0',
  32. 'password' => 'required|min:6|max:20|same:password_confirmation'
  33. ];
  34. }
  35. // 场景列表
  36. protected $scenes = [
  37. 'add' => ['username', 'phone'],
  38. 'edit' => ['uid', 'username', 'phone'],
  39. 'get_detail' => ['uid'],
  40. 'set_status' => ['uid'],
  41. 'alter_password' => ['password'],
  42. ];
  43. /**
  44. *
  45. * @return array
  46. */
  47. public function messages()
  48. {
  49. return [
  50. 'username.required' => '请输入登录账号',
  51. 'username.max' => '登录账号最长20个字符',
  52. 'phone.required' => '请输入手机号',
  53. 'phone.unique' => '手机号已存在',
  54. 'phone.phone' => '手机号格式有误',
  55. 'uid.required' => '账号ID不能为空',
  56. 'uid.integer' => '账号ID格式错误',
  57. 'uid.gt' => '账号ID格式错误',
  58. 'password.required' => '请输入密码',
  59. 'password.min' => '密码长度不能小于6位',
  60. 'password.max' => '密码长度不能大于16位',
  61. 'password.same' => '确认密码不一致',
  62. ];
  63. }
  64. }