我在codeigniter和Iam工作,希望使用“Validation_form”库和我的自定义规则创建我自己的自定义验证类,我将放置自己的验证规则,并在我的项目中的任何地方使用它,但这似乎是不可能的,我以夫妇的方式尝试处理这个但没有。
Codeigniter kindle迫使我在我的控制器中制作我的回调方法,但我需要它们在我的库或“方法”或其他任何地方!我的问题是,我可以构建一个特定的库,我将放置验证规则和我需要处理的其他函数吗?
答案 0 :(得分:3)
您可以在application/libriries
中创建一个新库,并将文件命名为MY_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
注意单词form
上的小 f 。