Проверка правильности Codeigniter вызывает ошибку даже на допустимых входных данных - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть простая форма, где поле ввода для номера мобильного телефона было предоставлено пользователю, при отправке проверяет его на валидацию с помощью правил проверки, однако, несмотря на наличие предварительно заполненного значения в теге ввода, выдается обязательное поле с ошибкой.

[$this->form_validation->set_rules('mobile','Mobile','trim|required|numeric|exact_length\[10\]|callback_checkMobile');][1]

public function checkMobile($number){
if ($e_name=$this->HomeModel->isDuplicateMobile($number)) {
  if ($this->session->userdata('admin_name')) {
    if ($e_name!=$this->session->userdata('admin_name')) {
      $this->form_validation->set_message('checkMobile','The {field} Number already registered to '.$e_name.'.');
      return false;
    }
  } elseif ($this->session->userdata('user_name')) {
    if ($e_name!=$this->session->userdata('user_name')) {
      $this->form_validation->set_message('checkMobile','The {field} Number already registered to '.$e_name.'.');
      return false;
    }
  }

} else {
  return true;
}

}


<input class="<?=(form_error('mobile'))?'is-invalid':'is-valid'?> form-control" type="text" name="mobile" value="<?=set_value('mobile',$e_mobile)?>">

1 Ответ

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

Используйте это "is_unique"

$this->form_validation->set_rules('mobile','Mobile','trim|required|numeric|is_unique[table.fieldName]');

или

if($this->input->post('mobile') != $original_value) {
   $is_unique =  '|is_unique[table.fieldName]'
} else {
   $is_unique =  ''
}

$this->form_validation->set_rules('user_name', 'User Name', 'required|trim|xss_clean'.$is_unique);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...