BatchCreateRequest.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Http\Requests\API\User;
  3. use App\Http\Requests\RuleHelper;
  4. use App\Models\Company;
  5. use App\Models\Department;
  6. use App\Models\Role;
  7. use Illuminate\Foundation\Http\FormRequest;
  8. use Illuminate\Support\Facades\Auth;
  9. use Illuminate\Validation\Rule;
  10. class BatchCreateRequest extends FormRequest
  11. {
  12. use RuleHelper;
  13. /**
  14. * Determine if the user is authorized to make this request.
  15. */
  16. public function authorize(): bool
  17. {
  18. return true;
  19. }
  20. /**
  21. * Get the validation rules that apply to the request.
  22. *
  23. * @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
  24. */
  25. public function rules(): array
  26. {
  27. $departmentIds=[];
  28. if(Auth::user()->super_admin){ //若是超级管理员可以查看所有部门,且添加
  29. $departmentIds = Department::withoutGlobalScopes()->pluck('id')->toArray();
  30. }else{
  31. $departmentIds = Department::pluck('id')->toArray();
  32. }
  33. $roleIds = Role::pluck('id')->toArray();
  34. $IdsAndDitto=$departmentIds;
  35. $IdsAndDitto[] = 'ditto';
  36. $IdsAndDittoWithRole=$roleIds;
  37. $IdsAndDittoWithRole[]='ditto';
  38. return [
  39. '*.name' => 'required|max:100',
  40. '*.email'=> 'required|email|unique:users',
  41. '*.username'=>'required|max:30|unique:users',
  42. // '*.pwd_is_ditto'=>'required|in:1,0',取消密码同上
  43. '*.password' => 'required|min:6|regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,}$/',//至少6位,包含大小写字母和数字,At least 6 digits, including upper and lower case letters and numbers
  44. '*.gender'=>'nullable|in:1,0',
  45. '*.company_id'=>'required|exists:company,id',
  46. '*.department_id'=>[
  47. Rule::in($IdsAndDitto),
  48. ],
  49. '*.role_id'=>[
  50. Rule::in($IdsAndDittoWithRole),
  51. ],
  52. ];
  53. }
  54. }