public function saveObjectRelation(Request $request, $newsModel) { DB::table('News_Company')->where("id_News", "=", $newsModel->id_News)->delete(); DB::table('News_Product')->where("id_News", "=", $newsModel->id_News)->delete(); DB::table('News_Employee')->where("id_News", "=", $newsModel->id_News)->delete(); foreach ($newsModel->target as $relationTarget) { $matches = preg_grep('/^' . $relationTarget . "_*/i", array_keys($request->all())); foreach ($matches as $targetItem) { if ($request->get($targetItem) == "on") { $ObjectTrgetId = str_replace($relationTarget . "_", "", $targetItem); switch ($relationTarget) { case 'Companies': $newsModel->company()->save(Companies::findOrNew($ObjectTrgetId)); break; case 'People': $employeeModel = Employee::where("id_People", "=", $ObjectTrgetId)->first(); //dd($employeeModel); $newsModel->employee()->save(Employee::findOrNew($employeeModel->id_Employee)); break; case 'Vertical': break; case 'Products': $newsModel->product()->save(Products::findOrNew($ObjectTrgetId)); break; case 'Events': break; } } } } }