Только функция обратного вызова Codeigniter работает, остальные правила проверки работают - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть простая страница регистрации, где небольшая проверка, существует ли номер CPF или нет, должна быть проверена из базы данных вместе с некоторыми правилами проверки. Однако после отправки формы из правил проверки работает только функция обратного вызова, а остальные правила игнорируются, как требуется | trim ... et c.

В моем контроллере (правила проверки):

if ($this->input->post()) {
    $this->form_validation->set_rules('cpf','CPF','trim|required|numeric|max_length[15]|callback_checkIfExist[cpf]');
    if ($this->form_validation->run()==TRUE) {
        $rb = random_bytes(8);
        $randPass = bin2hex($rb);
        // TODO: Store hashed password in db
        // mail new password for login
        // login and update password
    }
}
$this->load->view($page,$data);

В моем контроллере (функция обратного вызова):

public function checkIfExist($cpf){
    if (!$data['employee']=$this->HomeModel->getEmployeeData($cpf)) {
        $this->form_validation->set_message('checkIfExist','No data found with this {field}');
        return false;
    } else {
        return true;
    }
}

В моей модели:

public function getEmployeeData($cpf){
  # returning only 1 row of particular employee
  $this->db->where('e_cpf',$cpf);
  $this->db->where('e_b_id',Me::$bid);
  $qry = $this->db->get('employees');
  if ($row = $qry->row()) {
    return $row;
  }
}

В моем представлении:

<form class="user" action="" method="post">
    <div class="form-group">
        <input type="text" name="cpf" class="form-control form-control-user <?=(form_error('cpf'))?'is-invalid':'is-valid'?>" id="exampleInputEmail" aria-describedby="emailHelp" placeholder="Enter CPF Number ..." value="<?=set_value('cpf')?>">
        <p class="p-2"><?=form_error('cpf')?></p>
    </div>
    <input class="btn btn-primary btn-user btn-block" type="submit" name="register" value="Register">
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...