private function pdfQuestion(Mypdf $fpdf, $id_question, $count, $answered = false) { $question = new Question(); $question_controller = new QuestionController($question); $decode = $question_controller->getCode($id_question); $type = $decode['type']; switch ($type) { case 'Выбор одного из списка': $one_choice = new OneChoice($id_question); $one_choice->pdf($fpdf, $count, $answered); break; case 'Выбор нескольких из списка': $multi_choice = new MultiChoice($id_question); $multi_choice->pdf($fpdf, $count, $answered); break; case 'Текстовый вопрос': $fill_gaps = new FillGaps($id_question); $fill_gaps->pdf($fpdf, $count, $answered); break; case 'Таблица соответствий': $accordance_table = new AccordanceTable($id_question); $accordance_table->pdf($fpdf, $count, $answered); break; } }
/** Обработка формы добавления вопроса */ public function add(Request $request) { $code = $this->setCode($request); $type = $request->input('type'); $query = Question::max('id_question'); //пример использования агрегатных функций!!! $id = $query + 1; switch ($type) { case 'Выбор одного из списка': $one_choice = new OneChoice($id); $one_choice->add($request, $code); break; case 'Выбор нескольких из списка': $multi_choice = new MultiChoice($id); $multi_choice->add($request, $code); break; case 'Текстовый вопрос': $fill_gaps = new FillGaps($id); $fill_gaps->add($request, $code); break; case 'Таблица соответствий': $fill_gaps = new AccordanceTable($id); $fill_gaps->add($request, $code); break; case 'Да/Нет': $fill_gaps = new YesNo($id); $fill_gaps->add($request, $code); break; case 'Определение': $definition = new Definition($id); $definition->add($request, $code); break; case 'Просто ответ': $just = new JustAnswer($id); $just->add($request, $code); break; case 'Теорема': $theorem = new Theorem($id); $theorem->add($request, $code); break; } return redirect()->route('question_create'); }