вот код проверки:
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 \ libraries \ Form_validation.php в строке 744 и определен
Вы можете сделать это, взяв второй параметр. 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