Exemplo n.º 1
0
 /**
  * Assert thet the model can be saved without error and, if errors are present, print
  * out the corresponding error messages.
  * @param CActiveRecord $model
  */
 public function assertSaves(CActiveRecord $model)
 {
     $saved = $model->save();
     if ($model->hasErrors()) {
         VERBOSE_MODE && print_r($model->getErrors());
     }
     $this->assertTrue($saved);
 }
Exemplo n.º 2
0
 public function saveActiveRecord(CActiveRecord $record)
 {
     try {
         if (!$record->save()) {
             new \Error(5, null, json_encode($record->getErrors()));
         }
     } catch (Exception $e) {
         new \Error(5, null, $e->getMesaage());
     }
 }
Exemplo n.º 3
0
 /**
  *### .checkErros()
  *
  * errors as CHttpException
  * @internal param $msg
  */
 public function checkErrors()
 {
     if ($this->model->hasErrors()) {
         $msg = array();
         foreach ($this->model->getErrors() as $attribute => $errors) {
             $msg = array_merge($msg, $errors);
         }
         //todo: show several messages. should be checked in x-editable js
         //$this->error(join("\n", $msg));
         $this->error($msg[0]);
     }
 }
Exemplo n.º 4
0
 /**
  *### .checkErros()
  *
  * errors as CHttpException
  * @internal param $msg
  * @throws CHttpException
  */
 public function checkErrors()
 {
     if (!$this->model->hasErrors()) {
         return;
     }
     $msg = array();
     foreach ($this->model->getErrors() as $attribute => $errors) {
         // TODO: make use of $attribute elements
         $msg = array_merge($msg, $errors);
     }
     $this->error($msg[0]);
 }
Exemplo n.º 5
0
 /**
  * Extended after validate function from CFormModel that validates associated
  * active record as well
  * @param array $attributes
  * @param boolean $clearErrors
  * @return boolean
  */
 public function afterValidate($attributes = null, $clearErrors = true)
 {
     if ($this->model != null) {
         if ($this->model->validate()) {
             return true;
         } else {
             $errors = $this->model->getErrors();
             $this->addErrors($errors);
             return false;
         }
     }
     return true;
 }
Exemplo n.º 6
0
 /**
  * main function called to update column in database
  *
  */
 public function update()
 {
     //set params from request
     $this->primaryKey = yii::app()->request->getParam('pk');
     $this->attribute = yii::app()->request->getParam('name');
     $value = Yii::app()->request->getParam('value');
     //checking params
     if (empty($this->attribute)) {
         throw new CException(Yii::t('zii', 'Property "attribute" should be defined.'));
     }
     if (empty($this->primaryKey)) {
         throw new CException(Yii::t('zii', 'Property "primaryKey" should be defined.'));
     }
     //loading model
     $this->model = CActiveRecord::model($this->modelClass)->findByPk($this->primaryKey);
     if (!$this->model) {
         throw new CException(Yii::t('editable', 'Model {class} not found by primary key "{pk}"', array('{class}' => get_class($this->model), '{pk}' => $this->primaryKey)));
     }
     $this->model->setScenario($this->scenario);
     //is attribute exists
     if (!$this->model->hasAttribute($this->attribute)) {
         throw new CException(Yii::t('editable', 'Model {class} does not have attribute "{attr}"', array('{class}' => get_class($this->model), '{attr}' => $this->attribute)));
     }
     //is attribute safe
     if (!$this->model->isAttributeSafe($this->attribute)) {
         throw new CException(Yii::t('zii', 'Model {class} rules do not allow to update attribute "{attr}"', array('{class}' => get_class($this->model), '{attr}' => $this->attribute)));
     }
     //setting new value
     $this->setAttribute($this->attribute, $value);
     //validate
     $this->model->validate(array($this->attribute));
     if ($this->model->hasErrors()) {
         $this->error($this->model->getError($this->attribute));
     }
     //save
     if ($this->beforeUpdate()) {
         //saving (only chnaged attributes)
         if ($this->model->save(false, $this->changedAttributes)) {
             $this->afterUpdate();
         } else {
             $this->error(Yii::t('zii', 'Error while saving record!'));
         }
     } else {
         $firstError = reset($this->model->getErrors());
         $this->error($firstError[0]);
     }
 }
Exemplo n.º 7
0
 /**
  * Assert thet the model can be saved without error and, if errors are present, print
  * out the corresponding error messages.
  * @param CActiveRecord $model
  */
 public function assertSaves(CActiveRecord $model)
 {
     $saved = $model->save();
     if ($model->hasErrors()) {
         X2_TEST_DEBUG_LEVEL > 1 && print_r($model->getErrors());
     }
     $this->assertTrue($saved);
 }
Exemplo n.º 8
0
 /**
  * Log exception model is not saved due to validation failed
  *
  * @param CActiveRecord $model
  * @param null          $result if not set then the $model is used as result
  * @param               $returnCode
  *
  * @return XException
  */
 public function modelIsNotSaved(CActiveRecord $model, $result = null, $returnCode = -1)
 {
     $errorData = $model->getErrors();
     $errorData['message'] = get_class($model) . ' information is not saved. ' . CHtml::errorSummary($model);
     return $this->eh->logException(isset($result) ? $result : $model, $returnCode, self::ERR_AR_IS_NOT_SAVED, $errorData);
 }