public function saveDivisionStudentList($con = null) { if (!$this->isValid()) { throw $this->getErrorSchema(); } if (!isset($this->widgetSchema['division_student_list'])) { // somebody has unset this widget return; } if (is_null($con)) { $con = $this->getConnection(); } $con->beginTransaction(); try { $values = $this->getValue('division_student_list'); $this->getObject()->deleteStudents($con, $values); if (is_array($values)) { foreach ($values as $value) { $division_student = new DivisionStudent(); $division_student->setDivision($this->getObject()); $division_student->setStudentId($value); $division_student->save($con); } } $con->commit(); } catch (Exception $e) { $con->rollBack(); throw $e; } }