本文整理汇总了PHP中yii\db\ActiveRecord::addError方法的典型用法代码示例。如果您正苦于以下问题:PHP ActiveRecord::addError方法的具体用法?PHP ActiveRecord::addError怎么用?PHP ActiveRecord::addError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yii\db\ActiveRecord
的用法示例。
在下文中一共展示了ActiveRecord::addError方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: saveData
/**
* @param array $data
*/
private function saveData(array $data)
{
foreach ($this->getLanguages() as $locale => $language) {
/** @var ActiveRecord $translation */
$translation = $this->owner->getTranslation($locale)->one();
if ($translation === null) {
$translation = new $this->translationModelName();
$translation->{$this->translationOwnerField} = $this->owner->{$this->ownerPrimaryKey};
$translation->{$this->languageField} = $language->id;
}
if (isset($data[$locale])) {
$translation->setAttributes($data[$locale]);
}
if (!$translation->save()) {
$this->owner->addError($locale, $translation->getErrors());
}
}
}
示例2: addError
public function addError($error, $message = null)
{
if ($message != null) {
parent::addError($error, $message);
} else {
list($attribute, $error) = $error;
parent::addError($attribute, $error);
}
}
示例3: beforeValidate
/**
* @param $event
* Try to apply crop before validate, because it may generate errors
*/
public function beforeValidate($event)
{
$file = $this->file = UploadedFile::getInstance($this->_model, "__{$this->attribute}_file__");
if ($file && !$file->hasError) {
$asp = $this->propValue('aspectRatio');
if ($asp > 30) {
// Uploader widget sets aspect ratio at 1000 x real value
$asp /= 1000;
// compensate
$this->_model->{$this->aspectRatio} = $asp;
}
// convert crop data from Json to array
$crop = Json::decode($this->crop);
// open image
$image = $this->_image = Image::getImagine()->open($file->tempName);
$imgSize = $image->getSize();
$ww = $imgSize->getWidth();
$hh = $imgSize->getHeight();
$error = !$this->allowTooSmall;
$cropSize = $this->propValue('cropSize');
// Apply crop, if possible
if ($crop['w'] > 0 && $crop['h'] > 0) {
$error = $asp > 1 ? $crop['w'] < $cropSize : $crop['h'] < $cropSize;
if (!$error) {
$image->crop(new Point($crop['x'], $crop['y']), new Box($crop['w'], $crop['h']));
}
} else {
$asp = $ww / $hh;
if (!is_numeric($this->aspectRatio)) {
$this->_model->{$this->aspectRatio} = $asp;
}
}
if ($error) {
// set error in model
$this->_model->addError($this->attribute, sprintf($this->tooSmallMsg, $file->name, $ww, $hh));
$event->isValid = false;
}
}
}
示例4: afterTransaction
public function afterTransaction()
{
if ($this->hasErrors()) {
if ($this->ownerAddErrors) {
foreach ($this->relations as $relation) {
if ($this->errors[$relation]) {
$this->owner->addErrors($this->errors[$relation]);
}
}
} else {
$this->owner->addError('ALL', 'error');
// что бы работал owner->hasErrors
}
}
if ($this->transaction !== null) {
if ($this->hasErrors()) {
$this->transaction->rollBack();
} else {
$this->transaction->commit();
}
}
}