заменить $this->form_validation->set_message('username_check', 'The username %s already exist');
на $this->form_validation->set_message('username', 'The username %s already exist');
Вы должны установить сообщение для имени пользователя, а не username_check. Также проверьте, если вы повторяете ошибку в вашем представлении, используя <?php echo form_error('username') ?>
и затем двигаться
if($this->home_model->check_username($username)) {
$this->form_validation->set_message('username_check', 'The username %s already exist');
}
к отдельной функции внутри контроллера Home
function username_check($username) {
if($this->home_model->check_username($username)) {
$this->form_validation->set_message('username_check', 'The username %s already exist');
}
}