Проблема с пользовательской проверкой Codeigniter

#php #oop #codeigniter

#php #ооп #codeigniter

Вопрос:

Я пытаюсь подтвердить имя пользователя (подключенное к mysql), но моя проверка coustom (обратный вызов) не будет работать.

Контроллер http://pastebin.com/RLitWDYf

Модель http://pastebin.com/6xygLwW5

Почему мой обратный вызов не выдает никаких ошибок, когда имя пользователя уже используется?

Ответ №1:

замените $this->form_validation->set_message('username_check', 'The username %s already exist'); на $this->form_validation->set_message('username', 'The username %s already exist'); Вы должны установить сообщение для username, а не 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');
        }
  

к собственной функции в домашнем контроллере

 function username_check($username) {
if($this->home_model->check_username($username)) {
            $this->form_validation->set_message('username_check', 'The username %s already exist');
        }
}
  

Комментарии:

1. Привет, теперь я заменил строку, как вы сказали. И это все еще не работает. Да, я действительно отображаю ошибку формы. Я получаю все остальное, но не ошибку «недопустимое имя пользователя»..

2. doh, обратный вызов доступен только для функций.