Я работаю в codeigniter и Iam, желая создать свой собственный класс проверки, используя библиотеку «Validation_form» и мое пользовательское правило, где я буду размещать свои собственные правила проверки и использовать их везде в моем проекте, но это кажется невозможным, я пытался в парах способы справиться с этим, но ничего.
Codeigniter kindle заставляет меня делать мои методы обратного вызова в моем контроллере, но мне они нужны в моей библиотеке или «методе» или где угодно еще !!!
Мой вопрос: могу ли я создать конкретную библиотеку, где я буду размещать свои правила проверки и другие функции, которые мне нужно для этого?
вы можете создать новую библиотеку в application/libriries
и назовите файл MY_Form_validation
Что вы здесь делаете, это расширение класса form_validation
так что вам не нужно будет form_validation
с основными файлами.
MY_
– это то, что установлено в вашем конфиге, обязательно проверьте его, если вы изменили свое.
образец MY_Form_validation.php
class MY_Form_validation Extends CI_Form_validation { //this is mandatory for this class //do not forget this or it will not work public function __construct($rules = array(){ parent::__construct($rules); $this->CI->lang->load('MY_form_validation'); } public function method1($str){ return $str == '' ? FALSE : TRUE; } pulic function method2($str) { //if you want a validation from database //you can load it here // or check the `form_validation` file on `system/libraries/form_validation` } public function check_something_with_post($tr) { return $this->CI->input->post('some_post') == FALSE ? FALSE : TRUE; } }
В принципе, когда вы вызываете method1|method2
значение вашего поля сообщения будет параметром метода. если вы хотите проверить другое сообщение, вы можете сделать это, используя $this->CI->input->post('name of the post');
когда вы хотите передать параметр, просто посмотрите на форму проверки is_unique
или unique
код на system/libraries/form_validation
вас будет идея.
Чтобы создать сообщение об ошибке, которое идет с ним, перейдите в application/language/english/MY_Form_validation_lang
Образец MY_form_validation_lang.php
$lang['method1'] = "error error error."; $lang['method2'] = "this is an error message.";
если english
не существует на вашем application/language
просто создайте его.
подробнее о создании библиотек
ЗАМЕТКА:
На каком-то сервере linux
или debian
вы можете изменить имя файла из MY_Form_validation
на MY_form_validation
отметить маленькое f в form
слова.