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
Beispiel #2
0
 /**
  * @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);
 }