Beispiel #1
0
 public function save()
 {
     try {
         if ($this->id) {
             $model = Operation::model()->findByPk($this->id);
             if (empty($model)) {
                 throw new CDbException('参数出错', 1, []);
             }
         } else {
             $model = new Operation();
         }
         $model->attributes = ['name' => $this->name, 'description' => $this->description, 'module' => $this->module, 'controller' => $this->controller, 'action' => $this->action, 'status' => $this->status, 'sort' => $this->sort];
         if ($model->save() === false) {
             throw new CDbException('更新用户出错', 2, $model->getErrors());
         }
     } catch (CDbException $e) {
         $this->addErrors($e->errorInfo);
         return false;
     }
     return true;
 }
 /**
  * 匯入術式
  */
 public function actionOperations()
 {
     $this->currentActive = '術式';
     $excel = new ExcelUploadForm();
     $rows = array();
     $errors = array();
     if (isset($_POST['ExcelUploadForm'])) {
         $excel->attributes = $_POST['ExcelUploadForm'];
         $excel->file = CUploadedFile::getInstance($excel, 'file');
         $transaction = Yii::app()->db->beginTransaction();
         try {
             if ($excel->validate()) {
                 $rows = $excel->getContents();
                 foreach ($rows as $i => $row) {
                     if ($i != ExcelUploadForm::HEADER) {
                         $operation = new Operation();
                         $operation->name = $row[1];
                         if (!$operation->save()) {
                             $errorData = array('第' . ($i + 1) . '筆,' . $row[2] => $operation->getErrors());
                             $errors[] = $errorData;
                         }
                     }
                 }
                 $transaction->commit();
             } else {
                 $errors[] = array('Excel' => $excel->getErrors());
             }
         } catch (Exception $e) {
             $transaction->rollBack();
             $errors = $e->getMessage();
         }
         $this->_setFlashMessage($errors);
         $this->redirect($this->createUrl("/excel/import/{$this->action->id}"));
     }
     $this->render('upload', array('excel' => $excel));
 }