ApproveLeave.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace app\common\validate;
  3. use think\Validate;
  4. /**
  5. * 请假信息验证
  6. */
  7. class ApproveLeave extends Validate
  8. {
  9. /**
  10. * 验证规则
  11. */
  12. protected $rule = [
  13. 'apply_user_id' => 'require',
  14. 'type' => 'require|gt:0',
  15. 'start_time' => 'require',
  16. 'end_time' => 'require|check_end_time',
  17. 'start_am' => 'require',
  18. 'end_am' => 'require',
  19. 'time' => 'require|gt:0',
  20. 'reason' => 'require',
  21. 'approve_user' => 'require',
  22. ];
  23. /**
  24. * 提示消息
  25. */
  26. protected $message = [
  27. ];
  28. /**
  29. * 验证场景
  30. */
  31. protected $scene = [
  32. 'create' => ['apply_user_id','type', 'start_time', 'end_time', 'start_am', 'end_am', 'time', 'reason', 'approve_user'],
  33. 'update' => ['apply_user_id','type', 'start_time', 'end_time', 'start_am', 'end_am', 'time', 'reason', 'approve_user'],
  34. 'edit' => ['type', 'start_time', 'end_time', 'start_am', 'end_am', 'time', 'reason'],
  35. ];
  36. /**
  37. * 构造函数
  38. * @access public
  39. * @param array $rules 验证规则
  40. * @param array $message 验证提示信息
  41. * @param array $field 验证字段描述信息
  42. */
  43. public function __construct(array $rules = [], $message = [], $field = [])
  44. {
  45. $this->field = [
  46. 'apply_user_id' => '申请人',
  47. 'type' => '请假类型',
  48. 'start_time' => '请假开始时间',
  49. 'end_time' => '请假结束时间',
  50. 'start_am' => '请假开始时间',
  51. 'end_am' => '请假结束时间',
  52. 'time' => '请假时长',
  53. 'reason' => '请假原因',
  54. 'approve_user' => '审批人',
  55. ];
  56. $this->message = array_merge($this->message, [
  57. 'apply_user_id.require' => '请选择申请人',
  58. 'type.gt' => '请选择正确的请假类型',
  59. 'start_time.check_start_time' => '请假开始时间必须大于今天',
  60. 'end_time.check_end_time' => '请假结束时间不能小于开始时间',
  61. ]);
  62. parent::__construct($rules, $message, $field);
  63. }
  64. protected function check_start_time($value, $rule, $data)
  65. {
  66. if ($value <= date('Y-m-d')) {
  67. return false;
  68. }
  69. return true;
  70. }
  71. protected function check_end_time($value, $rule, $data)
  72. {
  73. if ($value >= $data['start_time']) {
  74. return true;
  75. }
  76. return false;
  77. }
  78. }