value('store_id'); } // 处理日期 if (isset($data['date_range']) && !isset($data['start_at']) && !isset($data['end_at'])) { $dates = explode(',', $data['date_range']); $data['start_at'] = Carbon::createFromFormat('Y-m-d', data_get($dates, 0))->startOfDay(); $data['end_at'] = Carbon::createFromFormat('Y-m-d', data_get($dates, 1))->endOfDay(); } return $data; } public function validate($data, $model = null) { // 验证申请时间是否重叠 if (HolidayApply::where('employee_id', data_get($data, 'employee_id', $model?->employee_id))->where(fn($q) => $q->whereBetween('start_at', [$data['start_at'], $data['end_at']])->orWhereBetween('end_at', [$data['start_at'], $data['end_at']]))->exists()) { return '该时间段已经申请过了'; } $createRules = [ 'employee_id' => ['required'], 'type_id' => ['required'], 'reason' => ['required'], 'start_at' => ['required'], 'end_at' => ['required'], ]; $updateRules = []; $validator = Validator::make($data, $model ? $updateRules : $createRules, []); if ($validator->fails()) { return $validator->errors()->first(); } return true; } }