Пользовательское правило проверки Yii2, сравните функцию, используя три атрибута - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь изменить пользовательское правило проверки в 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'],

тоже не работает.

1 Ответ

0 голосов
/ 12 апреля 2020

ОТВЕТ :

Оказывается, функция работает, но не напрямую на стороне клиента. Это работает после того, как все другие правила проверки пройдены.

...