/** * Маршрут editstudent ( <route name="editstudent">) * * Редактирование студента * * @param int $id - id студента * @param int $id_group - id группы * @param string $s_name - фамилия * @param string $f_name - имя * @param string $stud_sx - пол * @param int $age - возраст * @param string $submit_val - режим выполнения */ public function update($id, $id_group, $s_name, $f_name, $stud_sx, $age, $submit_val) { if (!BaseService::isId($id)) { $id = 0; } if (!BaseService::isId($id_group)) { $id_group = 0; } switch ($submit_val) { case 'edit': try { $student = Student::getSelfById($id); $idGroup = $student->getGroup()->getId(); // вызов заданного в табл. маршрутизации представления (student) // c внесенными данными для редактирования: $this->getView(array('val_group_name' => GroupHelper::getGroupsAndFaculties($idGroup), 's_name' => $student->getSurname(), 'f_name' => $student->getFirstname(), 'stud_sx' => StudentHelper::getRadio($student->getSex() == 'жен.' ? 'female' : 'male'), 'age' => $student->getAge(), 'id' => $id, 'msg_validate' => '')); } catch (FrameworkException $frmExcep) { $this->status = self::$enumResultAction['RES_ACT_ERR']; $frmExcep->redirectToExcepPage(); } break; case 'Сохранить': $sex = $stud_sx == 'female' ? 0 : 1; try { $student = new Student($s_name, $f_name, $sex, $age, $id_group, $id); if ($student->save()) { //Студент успешно сохранен. //Задаем статус 'RES_ACT_OK' результата выполнения действия, //для автоматического редиректа на маршрут home, //который вызовет свое представление с табл. студентов: $this->status = self::$enumResultAction['RES_ACT_OK']; //вносим параметры для маршрута home: $this->addParametersForAutoRedirectRoute(array('id_group' => $id_group)); } else { $this->getView(array('val_group_name' => GroupHelper::getGroupsAndFaculties($id_group), 's_name' => $s_name, 'f_name' => $f_name, 'stud_sx' => StudentHelper::getRadio($stud_sx), 'age' => $age, 'id' => $id, 'msg_validate' => 'Внимание: ' . $student->getBrokenRulesTotalMessage())); } } catch (FrameworkException $frmExcep) { $this->status = self::$enumResultAction['RES_ACT_ERR']; $frmExcep->redirectToExcepPage(); } break; case 'Отмена': //Задаем статус 'RES_ACT_OK' результата выполнения действия, //для автоматического редиректа на маршрут home, //который вызовет свое представление с табл. студентов: $this->status = self::$enumResultAction['RES_ACT_OK']; break; default: throw new FrmworkExcep\RunTimeException('Аргумент $submit_val содержит недопустимое значение - "' . $submit_val . '".', GroupController::class, __METHOD__, 'Клиент изменил значение аргумента на ошибочное.'); } }