getTableColumns(); $model = $this->getModel(); $isEnable = Arr::get($data, 'is_enabled'); $publishedAt = Arr::get($data, 'published_at'); if ($isEnable && empty($publishedAt)) { $data['published_at'] = now(); } 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(); $isEnable = Arr::get($data, 'is_enable'); $publishedAt = Arr::get($data, 'published_at'); if ($isEnable && empty($publishedAt) && empty($model->published_at)) { $data['published_at'] = now(); } foreach ($data as $k => $v) { if (!in_array($k, $columns)) { continue; } $model->setAttribute($k, $v); } return $model->save(); } }