public function postSave(Request $request){//создание и обновление, if($request->has('update')){//обновляем $question = Question::find($request->input('update')); $question->title = $request->input('title'); $question->description = $request->input('description'); // сделать добавление меток if($request->has('teg')){ //сохраняем новые связи $question->tegs()->sync($request->input('teg')); } $question->save(); return redirect('questions')->with('message','Вопрос обновлен'); }else{//сохраняем новый вопрос //if validation //сохранить не удалось, ошибки при валидации return redirect()->back()->withInput()->withErrors($validator); //}else{//сохраняем, валидация прошла $question = Question::create([ 'user_id' => $this->user->id, 'title' => $request->input('title'), 'description' => $request->input('description') ]); //сохраняем, но проверить чтобы были метки $question->tegs()->attach($request->input('teg')); Subscribe::create([ 'question_id' => $question->id, 'user_id'=>$this->user->id ]); return redirect('questions') ->with('message','¬аш вопрос сохранен, когда будет ответ вам на почту придет уведомление.'); //} } }//end postSave
/** * @param Event $event * @param array $data * @return bool|static */ public function subscribe(Event $event, array $data) { $requesterCount = $this->countRequesters($data); $subscribers = $event->subscribers; $count = 0; foreach ($subscribers as $subscriber) { $count += $this->verifyDad($subscriber); $count += $this->verifyMom($subscriber); $count += $this->verifyChildren($subscriber); } if ($count + $requesterCount <= $event->vagas) { try { $subscribe = Subscribe::create(array_merge(['evento_id' => $event->id], $data)); } catch (\Exception $e) { header('HTTP/1.1 500 Internal Server Error'); return 'Ocorreu um erro ao salvar os dados'; } $event = $subscribe->event; $successResponse = 'Não se esqueça de anotar o endereço, sua data e a hora escolhida. Até lá!<br/><br/>' . "Cadastrado em: {$event->dia} - {$event->horario}"; return $successResponse; } header('HTTP/1.1 500 Internal Server Error'); return 'Limite de vagas atingido. Por favor, escolha um outro horário'; }
/** * @param array $data * @return static */ public function create(array $data) { return $this->model->create($data); }