CodeIgniter: custom validation rules can't be in a helper?

后端 未结 2 1220
执笔经年
执笔经年 2021-01-16 14:04

I\'ve created a \"validation helper\" that was supposed to have all my custom validation rules. The problem is that when I use them in my form validation, they seem to be ig

相关标签:
2条回答
  • 2021-01-16 14:18

    Robin's answer is the easiest way to deal with it; however, the why you can't is this:

    look in your system/libraries/Form_Validation.php, line: 587

    if ( ! method_exists($this->CI, $rule))
    {
      continue;
    }
    

    This check is done on all callbacks. Helpers are not classes & not loaded into the CI instance - and so not available from the Form_Validation library (because of the way it is specifically coded in this method)

    0 讨论(0)
  • 2021-01-16 14:34

    A function in a helper and a controller are different obviously.

    Create an extended MY_Form_validation.php in your libraries/, add the functions there and finally set the rules without callback_ and just their function name.

    Example:

    <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    
    class MY_Form_validation extends CI_Form_validation {
    
        /* set_rule('custom_require') */
        function custom_require($str) {
    
            return (bool)$str;
    
        }
    
    }
    
    0 讨论(0)
提交回复
热议问题