/** * store Contact * * @param Business $business Business that will hold the Contact * @param ContactFormRequest $request Contact form Request * @return Response Rendered view or Redirect */ public function store(Business $business, ContactFormRequest $request) { $this->log->info("BusinessContactController@store: businessId:{$business->id}"); if (Gate::denies('manageContacts', $business)) { abort(403); } if (trim($request->input('nin'))) { $existing_contacts = Contact::whereNotNull('nin')->where(['nin' => $request->input('nin')])->get(); foreach ($existing_contacts as $existing_contact) { $this->log->info("BusinessContactController: store: [ADVICE] Found existing contactId:{$existing_contact->id}"); if ($existing_contact->isSubscribedTo($business)) { $this->log->info("BusinessContactController: store: [ADVICE] Existing contactId:{$existing_contact->id} is already linked to businessId:{$business->id}"); Flash::warning(trans('manager.contacts.msg.store.warning_showing_existing_contact')); return redirect()->route('manager.business.contact.show', [$business, $existing_contact]); } } } $contact = Contact::create($request->except('notes', '_token')); $business->contacts()->attach($contact); $business->save(); $this->log->info("BusinessContactController@store: Contact created contactId:{$contact->id}"); $contact->business($business)->pivot->update(['notes' => $request->get('notes')]); Flash::success(trans('manager.contacts.msg.store.success')); return redirect()->route('manager.business.contact.show', [$business, $contact]); }