getTableColumns(); $model = $this->getModel(); $activityAt = explode(',', Arr::get($data, 'activity_at')); $data['start_at'] = Arr::get($activityAt, 0) ?? null; $data['end_at'] = Arr::get($activityAt, 1) ?? null; $data['cover'] = $this->saveImage('cover', 'activities/cover')[0] ?? ''; foreach ($data as $k => $v) { if (!in_array($k, $columns)) { continue; } $model->setAttribute($k, $v); } return $model->save(); } public function update($primaryKey, $data): bool { $columns = $this->getTableColumns(); $model = $this->query()->whereKey($primaryKey)->first(); if(isset($data['activity_at'])){ $activityAt = explode(',', Arr::get($data, 'activity_at')); $data['start_at'] = Arr::get($activityAt, 0) ?? null; $data['end_at'] = Arr::get($activityAt, 1) ?? null; } if(isset($data['cover'])){ $data['cover'] = $this->saveImage('cover', 'activities/cover')[0] ?? ''; } foreach ($data as $k => $v) { if (!in_array($k, $columns)) { continue; } $model->setAttribute($k, $v); } return $model->save(); } public function delete(string $ids): mixed { $ids = explode(',', $ids); //判断活动未发布,才可删除 if($this->query()->whereIn('id', $ids)->where('state', '<>', 0)->exists()){ $this->setError('已发布活动不能删除'); } return $this->query()->whereIn('id', $ids)->delete(); } }