В codeigniter система проверки поддерживает обратные вызовы, это позволяет вам расширять класс проверки, чтобы удовлетворить то, что вам нужно, например:
В вашем контроллере измените правило "username" на следующее:
$this->form_validation->set_rules('username', 'Username', 'callback_username_check');
Затем в вашем контроллере вы можете добавить функцию с именем "username_check":
function username_check($str)
{
$this->load->model('your_model');
if ($this->your_model->checkUsername($str))
{
return true;
}
else
{
$this->form_validation->set_message('username_check', 'The username %s already exist');
return false;
}
А в вашей модели:
function checkUsername($username)
{
$this->db->where('username', $username);
$query = $this->db->get('users');
if ($query->num_rows() > 0){
return true;
}
else{
return false;
}
}
Пока !!