/** * Update the specified resource in storage. * * @param Request $request * @param int $id * @return Response */ public function update($id, Request $request) { $company = Companies::findOrFail($id); if (isset($request['add_new']) && $request['add_new']) { $mediaData = $this->mediaValidator($request); $company->mediaContacts()->save(new \App\Models\MediaContacts($mediaData)); return Redirect::back()->withInput($request->except(["Full_Name_Media_Contact", "Media_contact_Email", "Media_Contact_Phone"])); } else { if (isset($request['attach_file']) && $request['attach_file']) { $attachmentFields = $this->attachFileValidator($request); $company->attachments()->save(new \App\Models\Attachments($attachmentFields)); return Redirect::back()->withInput($request->except(["attached_file"])); } } $address = $this->addressValidator($request); $phone = $this->phoneValidator($request); if ($company->headquaters()->get()->count()) { Addresses::findOrNew($company->headquaters()->first()->AddressId)->fill($address)->save(); } else { $addressModel = Addresses::create($address); } if ($company->headquaters()->get()->count()) { Phones::findOrNew($company->headquaters()->first()->PhoneId)->fill($phone)->save(); } else { $phoneModel = Phones::create($phone); } if (!$company->headquaters()->count()) { $company->headquaters()->save(new \App\Models\HeadquartersInformation(['PhoneId' => $phoneModel->PhoneId, 'AddressId' => $addressModel->AddressId])); } $companyFields = $this->companyValidator($request); $company->fill($companyFields)->save(); return redirect(route('admin.companies.index'))->with('flash', 'The Company was updated'); }