public function saveSubject(JosSubject $subject) { $data = array('name' => $subject->getName(), 'year_id' => $subject->getYearId()); $value_id = (int) $subject->getValueId(); if ($value_id == 0) { $this->tableGateway->insert($data); } else { if ($this->getSubjectByArrayConditionAndArrayColumn(array('value_id' => $value_id), array('name'))) { $this->tableGateway->update($data, array('value_id' => $value_id)); } else { return false; } } return true; }
public function editAction() { // edit form $edit_form = new EditSubjectForm(); $request = $this->getRequest(); if ($request->isPost()) { $post = $request->getPost(); $edit_form->setData($post); if ($edit_form->isValid()) { // khai báo model bảng jos_year $jos_year_table = $this->getServiceLocator()->get('NamHoc\\Model\\JosYearTable'); // lấy year_id default $years = $jos_year_table->getYearByArrayConditionAndArrayColumn(array('is_active')); // không tồn tại year default if (!$years) { $this->flashMessenger()->addErrorMessage('Lỗi. Bạn muốn thêm "Môn Học" vào năm học nào? Vui lòng kiểm tra lại!'); return $this->redirect()->toRoute('mon_hoc/crud', array('action' => 'index')); } // tạo điểm truy cập csdl jos_subject $jos_subject_table = $this->getServiceLocator()->get('MonHoc\\Model\\JosSubjectTable'); // kiểm tra id vừa post có tồn tại không $subject = $jos_subject_table->getSubjectByArrayConditionAndArrayColumn(array('value_id' => $post['value_id']), array('year_id')); if (!$subject) { $this->flashMessenger()->addErrorMessage('Lỗi. Môn học cần sửa không tồn tại. Vui lòng kiểm tra lại!'); return $this->redirect()->toRoute('mon_hoc/crud', array('action' => 'index')); } // kiểm tra với năm hiện tại có tồn tại dòng nào có tên như trên chưa // nếu có kiểm tra có khác id không $jos_subject_exist = $jos_subject_table->getSubjectByArrayConditionAndArrayColumn(array('name' => $post['name'], 'year_id' => $years[0]['year_id']), array('value_id')); if ($jos_subject_exist and $post['value_id'] != $jos_subject_exist[0]['value_id']) { $this->flashMessenger()->addErrorMessage('Lỗi. Tên Môn học đã tồn tại. Vui lòng kiểm tra lại!'); return $this->redirect()->toRoute('mon_hoc/crud', array('action' => 'index')); } // luu lại $new_subject = new JosSubject(); $new_subject->exchangeArray($post); $new_subject->setYearId($subject[0]['year_id']); $jos_subject_table->saveSubject($new_subject); // thông báo thành công $this->flashMessenger()->addSuccessMessage('Chúc mừng, cập nhật môn học thành công!'); return $this->redirect()->toRoute('mon_hoc/crud', array('action' => 'index')); } } $this->flashMessenger()->addErrorMessage('Lỗi, thực thi không thành công. Vui lòng kiểm tra lại!'); return $this->redirect()->toRoute('mon_hoc/crud', array('action' => 'index')); }