ActiveRequest.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace App\Http\Requests;
  3. use Request;
  4. use Carbon\Carbon;
  5. use Illuminate\Foundation\Http\FormRequest;
  6. class ActiveRequest extends FormRequest
  7. {
  8. /**
  9. * Determine if the user is authorized to make this request.
  10. *
  11. * @return bool
  12. */
  13. public function authorize()
  14. {
  15. return true;
  16. }
  17. /**
  18. * Get the validation rules that apply to the request.
  19. *
  20. * @return array
  21. */
  22. public function rules()
  23. {
  24. // 持续性活动,开始结束时间为空; 比赛,开始结束时间必填
  25. if (!Request::input('start_time') && !Request::input('end_time')) {
  26. $if_sTime = 'nullable';
  27. $if_eTime = 'nullable';
  28. }
  29. else {
  30. if (Request::input('start_time')) {
  31. // 开始时间必须大于当前时间
  32. $if_sTime = 'required|after:'.Carbon::now();
  33. // 结束时间必须大于开始时间
  34. $start_time = date_create(Request::input('start_time'));
  35. $start_time = date_format($start_time, 'Y/m/d H:i:s');
  36. $if_eTime = 'required|after:'.$start_time;
  37. }
  38. else {
  39. $if_sTime = 'required';
  40. $if_eTime = 'required';
  41. }
  42. }
  43. return [
  44. 'name' => 'required|string|max:50',
  45. 'start_time' => $if_sTime,
  46. 'end_time' => $if_eTime,
  47. 'user_num' => 'nullable|integer|min:1',
  48. 'address' => 'required|max:255',
  49. 'text' => 'required'
  50. ];
  51. }
  52. public function messages()
  53. {
  54. return [
  55. 'start_time.after' => '必须大于当前时间',
  56. 'end_time.after' => '必须大于开始时间',
  57. 'start_time.required' => '开始时间和结束时间必须同时填写或不填',
  58. 'end_time.required' => '开始时间和结束时间必须同时填写或不填',
  59. ];
  60. }
  61. }