Codeigniter根据您的需要构建验证类

时间:2014-01-10 13:56:28

标签: php codeigniter validation frameworks codeigniter-2

我在codeigniter和Iam工作,希望使用“Validation_form”库和我的自定义规则创建我自己的自定义验证类,我将放置自己的验证规则,并在我的项目中的任何地方使用它,但这似乎是不可能的,我以夫妇的方式尝试处理这个但没有。

Codeigniter kindle迫使我在我的控制器中制作我的回调方法,但我需要它们在我的库或“方法”或其他任何地方!

我的问题是,我可以构建一个特定的库,我将放置验证规则和我需要处理的其他函数吗?

1 个答案:

答案 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上的表单验证uniquesystem/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,请创建它。

点击Creating libraries

查看详情

注意:

在某些linuxdebian服务器上,您可能需要将文件名从MY_Form_validation更改为 MY_form_validation注意单词form上的小 f