在创建新模型时,Yii验证与相关模型的属性进行比较

时间:2013-06-22 12:26:21

标签: validation yii model creation

我想在验证时将新创建的模型属性中的一个与相关模型的属性进行比较。 我正在寻找一段时间,并没有真正找到任何有用的信息。

在我的其他一个模型中,更新时,这段代码正在工作(在模型中):

public function compareWithDescendantsKeszDb() {
    $gyermek = $this->descendants(1)->find();

    if ($gyermek <> null) {
        if ($gyermek->keszDb < $this->keszDb) {
            $this->addError('keszDb', Yii::t('validation', 'some error message'));
        }
    }
}

public function rules() {
    return array(
        array('keszDb', 'compareWithDescendantsKeszDb'),
    );
}

但是同样的方法现在似乎没有用,也许是因为它现在是一个创建功能。 我试过这样(也在模特中):

public function compareWithSzeriaGyartmanyDb() {
    $szeriaGyartmany = SzeriaGyartmany::model()->findByPk($this->szeriaGyartmanyId);

    if ($this->db > $szeriaGyartmany->db) {
        $this->addError('db', Yii::t('validation', "Error: maximum you can save is $szeriaGyartmany->db"));
    }
}

public function rules() {
    return array(
        array('db', 'compareWithSzeriaGyartmanyDb'),
    );
}

我希望我想要实现的目标有些明确。 有人可以指出我正确的方向吗? 非常感谢!

BR c

1 个答案:

答案 0 :(得分:0)

尝试使用safe属性进行验证,如图所示

 public function rules() {
        return array(
            array('db', 'compareWithSzeriaGyartmanyDb','safe'),
        );
    }