/** * Update the profile based on the form submission * @param ProfileUpdateRequest $request * @return \Illuminate\Http\RedirectResponse */ public function update(ProfileUpdateRequest $request) { $contact = $this->getContact(); $contact->setName($request->input('name')); $contact->setRole($request->input('role')); $contact->setEmailAddress($request->input('email_address')); try { $work = $contact->getPhoneNumber(PhoneNumber::WORK); $work->setNumber(preg_replace("/[^0-9]/", "", $request->input('work_phone'))); $contact->setPhoneNumber($work); $mobile = $contact->getPhoneNumber(PhoneNumber::MOBILE); $mobile->setNumber(preg_replace("/[^0-9]/", "", $request->input('mobile_phone'))); $contact->setPhoneNumber($mobile); $home = $contact->getPhoneNumber(PhoneNumber::HOME); $home->setNumber(preg_replace("/[^0-9]/", "", $request->input('home_phone'))); $contact->setPhoneNumber($home); $fax = $contact->getPhoneNumber(PhoneNumber::FAX); $fax->setNumber(preg_replace("/[^0-9]/", "", $request->input('fax'))); $contact->setPhoneNumber($fax); } catch (Exception $e) { return redirect()->back()->withErrors($e->getMessage()); } $contactController = new ContactController(); try { $contactController->updateContact($contact); } catch (Exception $e) { Log::error($e->getMessage()); return redirect()->back()->withErrors(trans("errors.failedToUpdateProfile")); } $this->clearProfileCache(); return redirect()->action("ProfileController@show")->with('success', trans("profile.profileUpdated")); }