SetScheduleRequest.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace App\Http\Requests\Coach;
  3. use Illuminate\Foundation\Http\FormRequest;
  4. /**
  5. * 技师排班设置请求验证
  6. */
  7. class SetScheduleRequest extends FormRequest
  8. {
  9. /**
  10. * 判断用户是否有权限进行此请求
  11. */
  12. public function authorize(): bool
  13. {
  14. return true;
  15. }
  16. /**
  17. * 获取验证规则
  18. */
  19. public function rules(): array
  20. {
  21. return [
  22. 'time_ranges' => 'required|array|min:1',
  23. 'time_ranges.*.start_time' => [
  24. 'required',
  25. 'string',
  26. 'regex:/^([01][0-9]|2[0-3]):[0-5][0-9]$/', // 开始时间保持 00:00-23:59
  27. ],
  28. 'time_ranges.*.end_time' => [
  29. 'required',
  30. 'string',
  31. 'regex:/^((?:[01][0-9]|2[0-3]):[0-5][0-9]|24:00)$/', // 结束时间允许 24:00
  32. ],
  33. ];
  34. }
  35. /**
  36. * 获取验证错误消息
  37. */
  38. public function messages(): array
  39. {
  40. return [
  41. 'time_ranges.required' => '必须设置时间段',
  42. 'time_ranges.array' => '时间段必须是数组格式',
  43. 'time_ranges.min' => '至少设置一个时间段',
  44. 'time_ranges.*.start_time.required' => '开始时间不能为空',
  45. 'time_ranges.*.start_time.regex' => '开始时间格式错误,应为00:00-23:59格式',
  46. 'time_ranges.*.end_time.required' => '结束时间不能为空',
  47. 'time_ranges.*.end_time.regex' => '结束时间格式错误,应为00:00-24:00格式',
  48. ];
  49. }
  50. }