/** * 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); }
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()); } }
/** *### .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]); } }
/** *### .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]); }
/** * 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; }
/** * 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]); } }
/** * 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); }
/** * 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); }