Yii2自定义验证规则,使用三个属性比较功能

问题描述 投票:0回答:1

我正在尝试在Yii2中修改自定义验证规则。我想比较三个属性,场景就像:

harga_total必须大于(harga_satuan乘banyak_satuan)

这就是我在做什么:

public function rules() {
        return [            
            [['harga_total'], 'validateHarga', 'skipOnEmpty' => false, 'skipOnError' => false],
        ];
    }


public function validateHarga() {
        $a = $this->harga_total;
        $b = $this->harga_satuan;
        $c = $this->banyak_satuan;
        if ($a <= ($b * $c)) {
            $this->addError('harga_total', 'Harga Total harus lebih besar atau sama dengan harga satuan dikali dengan banyak satuan');
        }
    }

但是表格没有显示错误或其他任何内容。

我在此模型中执行的其他验证规则(不在类似函数中)正常工作。

我也尝试过在规则函数中这样做,例如:

['harga_total', 'compare', 'compareAttribute' => ($this->harga_satuan * $this->banyak_satuan), 'operator' => '>=','message' => 'Harga total harus lebih atau sama dengan harga satuan', 'type' => 'number'],

也不起作用。

validation yii2 attributes rules
1个回答
0
投票

ANSWER

结果是该功能有效,但不能直接在客户端使用。在通过所有其他验证规则后,它才起作用。

© www.soinside.com 2019 - 2024. All rights reserved.