1

我创建了一个“验证助手”,它应该有我所有的自定义验证规则。问题是当我在表单验证中使用它们时,它们似乎被忽略了。如果我在进行表单验证的控制器中移动函数,一切都会像魅力一样工作。我的验证助手是自动加载的。

如果我将它们放在帮助器中,是否有任何理由似乎无法使用这些验证功能?谢谢。

4

2 回答 2

4

助手和控制器中的功能明显不同。

在您的 中创建一个扩展 ,在其中添加函数,最后设置没有函数名的规则。MY_Form_validation.phplibraries/ callback_

例子:

<?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;

    }

}
于 2012-05-18T12:46:49.320 回答
1

罗宾的回答是最简单的处理方法;但是,您不能这样做的原因是:

查看您的系统/库/Form_Validation.php,行:587

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

此检查对所有回调进行。助手不是类,也不是加载到 CI 实例中 - 因此不能从 Form_Validation 库中获得(因为它是在这个方法中专门编码的方式)

于 2012-05-18T13:18:11.893 回答