/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id_region * @return \Illuminate\Http\Response */ public function update(Request $request, $id_region) { $this->validate($request, ['name' => 'required', 'countries' => 'required']); $region = Region::findOrFail($id_region); $region->name = $request->get('name'); $region->save(); //Reset $region_countries = Country::where('id_region', $id_region)->get(); foreach ($region_countries as $country) { $country->id_region = null; $country->save(); } //Set new ones $country_codes = $request->get('countries'); foreach ($country_codes as $country_code) { $country = Country::findOrFail($country_code); $country->id_region = $region->id; $country->save(); } return redirect()->route('regions.index')->with('message_update', 'Region ' . $region->name . ' has been successfully updated'); }