Как я могу передать третий параметр в функцию обратного вызова проверки формы, которая является именем поля? - PullRequest
0 голосов
/ 30 апреля 2018

вот код подтверждения:

public function registration () {
//
//
// -- code
      $this->form_validation->set_rules('password', 'Password', 'required|callback__check_length[6,10]');

}


   function _check_length($input, $min, $max)
    {
        $length = strlen($input);

        if ($length <= $max && $length >= $min)
        {
            return TRUE;
        }
        elseif ($length < $min)
        {
            $this->form_validation->set_message('_check_length', 'Minimum number of characters is ' . $min);
            return FALSE;
        }
        elseif ($length > $max)
        {
            $this->form_validation->set_message('_check_length', 'Maximum number of characters is ' . $max);
            return FALSE;
        }
    }

это дает мне ошибку: Сообщение: отсутствует аргумент 3 для Person :: _ check_length (), вызван в C: \ wamp64 \ www \ abc \ system \ library \ Form_validation.php в строке 744 и определен

1 Ответ

0 голосов
/ 30 апреля 2018

Вы можете сделать это, взорвав второй параметр. Кажется, CI не поддерживает 3 параметра в аргументах функций для правил проверки формы:

public function _check_length($input, $minmax) {

    $minmax = explode(',', $minmax);
    $min = $minmax[0];
    $max = $minmax[1];

    $length = strlen($input);

    if ($length <= $max && $length >= $min) {
        return TRUE;
    } elseif ($length < $min) {
        $this->form_validation->set_message('_check_length', 'Minimum number of characters is ' . $min);
        return FALSE;
    } elseif ($length > $max) {
        $this->form_validation->set_message('_check_length', 'Maximum number of characters is ' . $max);
        return FALSE;
    }
}

Вам также не нужно иметь собственную функцию для этого. Вы можете просто использовать min_length[x] и max_length[x] правила.

https://www.codeigniter.com/userguide3/libraries/form_validation.html#rule-reference

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...