yii2重写模型addError

时间:2017-11-30 09:16:26

标签: php yii yii2 yii2-advanced-app yii2-validation

这是原始的Model.php函数

public function addError($attribute, $error = '')
{
    $this->_errors[$attribute][] = $error;
}

在我的模型属性中,我希望以这种方式覆盖此方法

public function addError($attribute, $error = '')
{
    if ($attribute == 'status'){
        $this->_errors[$attribute] = $error;
    }
    else{
        $this->_errors[$attribute][] = $error;
    }
}

我无法访问$ this-> _errors ... 我不知道如何在不修改main model.php

的情况下覆盖这个功能

1 个答案:

答案 0 :(得分:0)

找到了解决办法! 在个人模型类中添加此

/**
 * @param array $errors
 */
public function setErrors($errors)
{
    $this->errors = $errors;
}

和我的验证功能

$this->setErrors(['status' => false, $attribute => 'not found']);

不使用addError函数