Intereting Posts
Как получить счетчик комментариев Disqus для страницы с использованием API-интерфейса Disqus? Как вычислить / сгенерировать строку со всеми возможными значениями в массиве? Фильтр SQL и PHP Как заполнить белый фон при изменении размера изображения Файлы cookie CodeIgniter, работающие в FF, но не Chrome или IE Неустранимая ошибка: вызов неопределенной функции tally () Неправильно ли использовать html внутри php-класса? wp_nav_menu исключает страницы из меню Используя PHP для отправки электронной почты, измените FROM, чтобы не было моего имени сервера Как получить значения в массиве со многими массивами в php? Почему в моем корневом каталоге не работает ../ (dot dot slash)? Как вставить строку и игнорировать только UNIQUE ошибки, не используя SELECT MVC для продвинутых разработчиков PHP Yii ajaxSubmitButton () с проверкой полей Поиск и замена нескольких значений несколькими / разными значениями в PHP5?

CodeIgniter Validation в библиотеке не принимает обратный вызов

моя проблема заключается в следующем: я пишу библиотеку входа. Эта библиотека имеет функцию _validation (), и для проверки данных используется библиотека проверки. С использованием обычных методов проверки он работает отлично, но использование функции обратного вызова просто не работает. Он не называется.

Я называю это так.

$this->CI->form_validation->set_rules('user', 'Username', 'required|callback__check_user'); 

Имя функции – _check_user, и оно использует имя пользователя _check_user ($ user). Сама функция отлично работает, и я могу также назвать ее в классе ($ this -> _ check_user ('username')) с рабочим результатом.

Я предполагаю, что может быть проблема, потому что я не работаю в контроллере, поэтому у меня есть экземпляр CI $ this-> CI, а не только оригинальный экземпляр $ this->

Кто-нибудь знает, как это исправить?

Заранее спасибо.

Solutions Collecting From Web of "CodeIgniter Validation в библиотеке не принимает обратный вызов"

Эй, я понял, как это работает для меня. Просто расширяя библиотеку Form_validation в MY_Form_validation.php, вы можете создавать собственные методы проверки. Я думаю, что это чистый способ, и он отлично работает. Я создаю ниже метод проверки для проверки существующих имен пользователей и паролей. $ value – это что-то вроде table_name.fieldname. У меня нет сообщения, чтобы он использовал сообщения _exist из lang-файлов.

 /** * Exist * * checks if the entry exists in the database * returns a boolean * * @access private * @param string * @param field * @return boolean */ function _exist($str, $value) { list($table, $column) = explode('.', $value, 2); $query = $this->CI->db->query("SELECT COUNT(*) AS count FROM $table WHERE $column = '$str'"); $row = $query->row(); return ($row->count > 0) ? TRUE : FALSE; } 

Спасибо за вашу помощь.

Обратный вызов проверки формы будет срабатывать только по методу внутри текущего контроллера.

Просто сделайте это в контроллере, использующем обратный вызов:

 function _check_user($user) { $this->load->model('login'); $result = $this->login->_check_user($user); return $result; }