getModelType($request->input('type')); $this->updatePostItems($request,$class,TRUE); return redirect() ->action( [$this->controller($request->input('type')),'deletes'], array_filter(['page'=>$request->input('page'),'list'=>$request->input('list')]) ); } public function duplicatesUpdate(Request $request) { $class = $this->getModelType($request->input('type')); $this->updatePostItems($request,$class); return redirect() ->action( [$this->controller($request->input('type')),'duplicates'], array_filter(['page'=>$request->input('page'),'list'=>$request->input('list')]) ); } private function updatePostItems(Request $request,string $class,bool $delete=FALSE) { foreach ($request->input('items') as $id) { try { $o = $class::findOrFail($id); } catch (ModelNotFoundException $e) { Log::alert('Object not found: '.$id); continue; } catch (\Exception $e) { dd($e); } // Set if duplicate $o->duplicate = $request->input('duplicate.'.$id) ? 1 : NULL; // Set if ignore duplicate $o->ignore_duplicate = $request->input('ignore_duplicate.'.$id) ? 1 : NULL; // Set if flag $o->flag = $request->input('flag.'.$id) ? 1 : NULL; // Set if delete if ($delete && $o->remove && ($request->input('remove.'.$id) ? 1 : NULL)) { switch (strtolower($request->input('type'))) { case 'photo': case 'video': Log::info(sprintf('Dispatching delete for [%s] (%s)',$o->id,$o->file_name(FALSE))); CatalogDelete::dispatch($o) ->onQueue('delete'); break; default: Log::info(sprintf('Ignoring delete for [%s] - not configured (%s).',$o->id,$class)); } } else { $o->remove = $request->input('remove.'.$id) ? 1 : NULL; } $o->save(); } } }