value('store_id'); } if (isset($data['date_range'])) { $time = explode(',', $data['date_range']); $start = Carbon::createFromTimestamp(data_get($time, 0))->startOfDay(); $end = Carbon::createFromTimestamp(data_get($time, 1))->endOfDay(); $data['start_at'] = $start; $data['end_at'] = $end; } return $data; } public function validate($data, $model = null) { // 验证申请时间是否重叠 if (OfficalBusiness::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'], 'start_at' => ['required'], 'end_at' => ['required'], 'address' => ['required'], ]; $updateRules = []; $validator = Validator::make($data, $model ? $updateRules : $createRules, []); if ($validator->fails()) { return $validator->errors()->first(); } return true; } }