12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- namespace app\common\validate;
- use think\Validate;
- /**
- * 请假信息验证
- */
- class ApproveLeave extends Validate
- {
- /**
- * 验证规则
- */
- protected $rule = [
- 'apply_user_id' => 'require',
- 'type' => 'require|gt:0',
- 'start_time' => 'require',
- 'end_time' => 'require|check_end_time',
- 'start_am' => 'require',
- 'end_am' => 'require',
- 'time' => 'require|gt:0',
- 'reason' => 'require',
- 'approve_user' => 'require',
- ];
- /**
- * 提示消息
- */
- protected $message = [
- ];
- /**
- * 验证场景
- */
- protected $scene = [
- 'create' => ['apply_user_id','type', 'start_time', 'end_time', 'start_am', 'end_am', 'time', 'reason', 'approve_user'],
- 'update' => ['apply_user_id','type', 'start_time', 'end_time', 'start_am', 'end_am', 'time', 'reason', 'approve_user'],
- 'edit' => ['type', 'start_time', 'end_time', 'start_am', 'end_am', 'time', 'reason'],
- ];
- /**
- * 构造函数
- * @access public
- * @param array $rules 验证规则
- * @param array $message 验证提示信息
- * @param array $field 验证字段描述信息
- */
- public function __construct(array $rules = [], $message = [], $field = [])
- {
- $this->field = [
- 'apply_user_id' => '申请人',
- 'type' => '请假类型',
- 'start_time' => '请假开始时间',
- 'end_time' => '请假结束时间',
- 'start_am' => '请假开始时间',
- 'end_am' => '请假结束时间',
- 'time' => '请假时长',
- 'reason' => '请假原因',
- 'approve_user' => '审批人',
- ];
- $this->message = array_merge($this->message, [
- 'apply_user_id.require' => '请选择申请人',
- 'type.gt' => '请选择正确的请假类型',
- 'start_time.check_start_time' => '请假开始时间必须大于今天',
- 'end_time.check_end_time' => '请假结束时间不能小于开始时间',
- ]);
- parent::__construct($rules, $message, $field);
- }
- protected function check_start_time($value, $rule, $data)
- {
- if ($value <= date('Y-m-d')) {
- return false;
- }
- return true;
- }
- protected function check_end_time($value, $rule, $data)
- {
- if ($value >= $data['start_time']) {
- return true;
- }
- return false;
- }
- }
|