Проверка Kohana - почему мое пользовательское правило всегда возвращает true? - PullRequest
0 голосов
/ 12 июня 2018

Почему мое пользовательское правило всегда возвращает true?Мой контроллер:

class Controller_Users extends Controller {
    public function action_func() {
        if ($_POST) {
            $validation = Validation::factory($_POST);
            $validation->rule('field', 'Test::func', array(':value'));
            $check = $validation->check(); // always true
        }
    }
}

И класс Test:

class Test {
    static public function func($value) {
        return false;
    }
}

Четко указано - false.Но ->check() возвращает истину.Зачем?И как это исправить?

1 Ответ

0 голосов
/ 07 июля 2018

Потому что вам нужно использовать $validation->error()

class Controller_Users extends Controller {
    public function action_func() {
        if ($_POST) {
            $validation = Validation::factory($_POST);
            $validation->label('field','Some label')
            $validation->rule('field', 'Test::func', array(':value',':validation'));
            $check = $validation->check(); // always true
        }
    }
}

И класс Test:

class Test {
    static public function func($value, $validation) {
        $validation->error('field','Some error desc');
        return false;
    }
}
...