/** Обработка формы добавления вопроса */ 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'); }