monitorModes = $region->monitorModes()->get()->pluck('id')->toArray(); return $region; } public function store($data): bool { $columns = $this->getTableColumns(); $model = $this->getModel(); foreach ($data as $k => $v) { if (!in_array($k, $columns)) { continue; } $model->setAttribute($k, $v); } try{ DB::beginTransaction(); if($model->save()){ //处理关联设备 $monitorModes = Arr::get($data, 'monitorModes'); $model->monitorModes()->sync($monitorModes ?? []); } DB::commit(); return true; }catch(Throwable $th){ DB::rollBack(); report($th); return false; } } public function update($primaryKey, $data): bool { $columns = $this->getTableColumns(); $model = $this->query()->whereKey($primaryKey)->first(); foreach ($data as $k => $v) { if (!in_array($k, $columns)) { continue; } $model->setAttribute($k, $v); } try{ DB::beginTransaction(); if($model->save()){ //处理关联设备 $monitorModes = Arr::get($data, 'monitorModes'); $model->monitorModes()->sync($monitorModes ?? []); } DB::commit(); return true; }catch(Throwable $th){ DB::rollBack(); report($th); return false; } } }