/** * Implement update($id, $input) */ public function update($id, $input) { $item = $this->find($id); Log::info("Update Article {$id}", $input); $updatedArticle = $item->update($input); foreach ($item->additional as $name => $value) { if (isset($input[$name])) { $additional = ItemAdditional::where('objectID', $id)->where('Name', $name)->first(); if (isset($additional)) { if ($value != $input[$name]) { $additional->update(['Value' => $input[$name]]); } } else { ItemAdditional::create(['objectID' => $id, 'Name' => $name, 'Value' => $input[$name]]); } } } //dd(__METHOD__.'('.__LINE__.')',compact('id', 'input', 'item','updatedItem')); return $updatedArticle; }