Yii2 自定义验证规则,比较函数使用三个属性
Yii2 custom validation rule, compare function using three attributes
我正在尝试修改 Yii2 中的自定义验证规则。我想比较三个属性,场景是这样的:
harga_total must be greater than (harga_satuan times 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'],
也不行。
答案:
事实证明该功能有效,但不能直接在客户端运行。
它在所有其他验证规则通过后起作用。
我正在尝试修改 Yii2 中的自定义验证规则。我想比较三个属性,场景是这样的:
harga_total must be greater than (harga_satuan times 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'],
也不行。
答案:
事实证明该功能有效,但不能直接在客户端运行。 它在所有其他验证规则通过后起作用。