AdminUserRequest.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace App\Http\Requests;
  3. use App\Models\AdminUser;
  4. use Illuminate\Support\Arr;
  5. use Illuminate\Support\Facades\Storage;
  6. class AdminUserRequest extends FormRequest
  7. {
  8. /**
  9. * Get the validation rules that apply to the request.
  10. *
  11. * @return array
  12. */
  13. public function rules()
  14. {
  15. $user = $this->userResource();
  16. $id = (int) optional($user)->id;
  17. $rules = [
  18. 'account' => 'required|max:100|unique:admin_users,account,' . $id,
  19. 'name' => 'required|max:100',
  20. 'avatar' => 'nullable|string|max:255',
  21. 'job_number' => 'required|max:6|min:3|unique:admin_users,job_number,' . $id,
  22. 'status' => 'required|boolean',
  23. 'is_login_app' => 'required|boolean',
  24. 'phone' => 'required',
  25. 'password' => 'required|between:6,20|confirmed',
  26. 'roles' => 'array',
  27. 'areas' => 'array|required',
  28. 'roles.*' => 'exists:admin_roles,id',
  29. 'permissions' => 'array',
  30. 'permissions.*' => 'exists:admin_permissions,id',
  31. ];
  32. if ($this->isMethod('put')) {
  33. $rules = Arr::only($rules, $this->keys());
  34. // 如果更新时, 没填密码, 则不用验证
  35. if (!$this->post('password')) {
  36. unset($rules['password']);
  37. }
  38. // 处理更新时,图片没有改,则不用验证
  39. if ($this->input('avatar') === Storage::disk('uploads')->url($user->avatar)) {
  40. unset($rules['avatar']);
  41. }
  42. }
  43. return $rules;
  44. }
  45. /**
  46. * @return AdminUser
  47. */
  48. public function userResource()
  49. {
  50. return $this->route('admin_user');
  51. }
  52. public function attributes()
  53. {
  54. return [
  55. 'account' => '账号',
  56. 'name' => '姓名',
  57. 'password' => '密码',
  58. 'job_number' => '工号',
  59. 'is_login_app' => '能否登录运维端',
  60. 'status' => '状态',
  61. 'pid' => '父id',
  62. 'phone' => '手机号',
  63. 'roles' => '角色',
  64. 'areas' => '区域',
  65. 'roles.*' => '角色',
  66. 'permissions' => '权限',
  67. 'permissions.*' => '权限',
  68. 'avatar' => '头像',
  69. ];
  70. }
  71. }