Validation Yii验证与相关模型的比较';创建新模型时的属性

Validation Yii验证与相关模型的比较';创建新模型时的属性,validation,yii,model,creation,Validation,Yii,Model,Creation,我想在验证时将新创建的模型的属性之一与相关模型的属性进行比较。 我已经搜索了一段时间,没有找到任何有用的信息 在我的另一个模型中,更新时,这段代码正在工作(在模型中): 我希望我想要实现的目标有点明确。 谁能给我指一下正确的方向吗? 非常感谢 溴 c尝试使用安全属性进行验证,如图所示 public function rules() { return array( array('db', 'compareWithSzeriaGyartmanyDb','sa

我想在验证时将新创建的模型的属性之一与相关模型的属性进行比较。 我已经搜索了一段时间,没有找到任何有用的信息

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

我希望我想要实现的目标有点明确。 谁能给我指一下正确的方向吗? 非常感谢


c

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

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

事实上我不知道。我想在错误消息中回显$this->szeriaGyartmanyId以检查它是否存在,但它似乎总是空的。起初我想测试并在文本字段中放入比允许的更大的量,我想在表单上向用户显示$szeriaGyartmany->db,这是可以保存的最大值。但是这个值是空的。然后我想在错误消息中回显$this->szeriaGyartmanyId来检查它是否存在,但它看起来也是空的。这就是为什么我觉得有些事情不好,但当我把一个更小或相等的数字,它似乎是工作。我想在错误消息中显示允许的最大数量。是的,我在很多其他地方使用它(在控制器和视图中,但可能问题是我现在想在模型中使用它,我不知道…)在应用程序日志中,我现在发现两个警告:[12:39:03.610][警告][应用程序]未能设置不安全属性“Kooperaciid”“KooperacioSzeriaGyartmany”的名字。在…\index.php(13)create(475.sor)[12:39:03.610][warning][application]的…\protected\controllers\KooperacioSzeriaGyartmanyController.php(15)中,未能设置“kooperacioszeriagyartmanyid”的不安全属性“szeriaGyartmanyId”。在…\protected\controllers\KooperacioSzeriaGyartmanyController.php(15)中,在…\index.php(13)中,这很奇怪。。。我从未见过这样的人,我想当你调用model方法compareWithSzeriaGyartmanyDb()时,它可能没有得到$this->szeriaGyartmanyId。因此,一旦你检查weahther,它就得到了有效的值,现在我可以在错误消息中看到变量的值了!非常感谢你!注意:事实上,我不得不将safe添加到这两个变量中:array('kooperacioId,szeriaGyartmanyId','safe'),因为在日志中提到这些变量是“设置不安全属性失败…”
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'),
    );
}
 public function rules() {
        return array(
            array('db', 'compareWithSzeriaGyartmanyDb','safe'),
        );
    }