Как сохранить с помощью 2 кнопок в Laravel? - PullRequest
0 голосов
/ 19 мая 2019

У меня есть форма с 2 кнопками, одна из которых «Добавить больше вопросов», а другая «Готово».Оба должны сохранять информацию, однако я хочу, чтобы они перенаправляли пользователя на другую страницу в зависимости от кнопки, которую они нажимают.Я пробовал метод переключения, и я получаю пустую страницу, и данные не сохраняются.

Вот мой контроллер

        public function store(StoreExamQuestionsRequest $request)
    {
        if (! Gate::allows('exam_question_create')) {
            return abort(401);
        }

    switch($request->submitbutton) {

      case 'save':
      $request = $this->saveFiles($request);
      $question = new ExamQuestion;
      $question->question = $request->question;

      $question->exam_id = session()->get('id');
      $question->score = $request->score;
      $question->question_image = $request->question_image;
      $question->save();

          for ($q = 1; $q <= 4; $q++) {
          $option = $request->input('text_' . $q, '');
          if ($option != '') {

              ExamOption::create([
                  'exam_question_id' => $question->id,
                  'text' => $option,
                  'is_correct' =>$request->input('is_correct_' .$q)

    ]);
  }
}
return redirect()->route('admin.exam_questions.create');
        break;

        case 'save-done':
        $request = $this->saveFiles($request);
        $question = new ExamQuestion;
        $question->question = $request->question;

        $question->exam_id = session()->get('id');
        $question->score = $request->score;
        $question->question_image = $request->question_image;
        $question->save();


        for ($q = 1; $q <= 4; $q++) {

        $option = $request->input('text_' . $q, '');
        if ($option != '') {

            ExamOption::create([
                'exam_question_id' => $question->id,
                'text' => $option,
                'is_correct' =>$request->input('is_correct_' .$q)



            ]);
          }
        }

return redirect()->route('admin.exam_questions.index');
          break;
}
}



  {!! Form::submit( 'Save', ['class' => 'btn btn-default', 'name' => 'submitbutton', 'value' => 'save'])!!}

  {!! Form::submit( 'Save Done', ['class' => 'btn btn-default', 'name' => 'submitbutton', 'value' => 'save-done']) !!}

Большое спасибо

1 Ответ

0 голосов
/ 19 мая 2019

Я понял это. Вот мое решение

public function store(StoreExamQuestionsRequest $request)
    {
        if (! Gate::allows('exam_question_create')) {
            return abort(401);
        }

   if(Input::get('save')) {

     $request = $this->saveFiles($request);
     $question = new ExamQuestion;
     $question->question = $request->question;
     $question->exam_id = session()->get('id');
     $question->score = $request->score;
     $question->question_image = $request->question_image;
     $question->save();

         for ($q = 1; $q <= 4; $q++) {
         $option = $request->input('text_' . $q, '');
         if ($option != '') {

             ExamOption::create([
                 'exam_question_id' => $question->id,
                 'text' => $option,
                 'is_correct' =>$request->input('is_correct_' .$q)

   ]);
 }
}

return redirect()->route('admin.exam_questions.create');

   }else if(Input::get('done')){
     $request = $this->saveFiles($request);
     $question = new ExamQuestion;
     $question->question = $request->question;

     $question->exam_id = session()->get('id');
     $question->score = $request->score;
     $question->question_image = $request->question_image;
     $question->save();


     for ($q = 1; $q <= 4; $q++) {

     $option = $request->input('text_' . $q, '');
     if ($option != '') {

         ExamOption::create([
             'exam_question_id' => $question->id,
             'text' => $option,
             'is_correct' =>$request->input('is_correct_' .$q)



         ]);
       }
     }

       return view ('admin.exam_questions.index');
   }
}

Вот кнопки

<button type="submit" class="btn btn-primary" name="save" value="save">Save & Go BACK</button>
<button type="submit" class="btn btn-primary" name="done" value ="done">Save Note</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...