我创建了一个“验证助手”,它应该有我所有的自定义验证规则。问题是当我在表单验证中使用它们时,它们似乎被忽略了。如果我在进行表单验证的控制器中移动函数,一切都会像魅力一样工作。我的验证助手是自动加载的。
如果我将它们放在帮助器中,是否有任何理由似乎无法使用这些验证功能?谢谢。
我创建了一个“验证助手”,它应该有我所有的自定义验证规则。问题是当我在表单验证中使用它们时,它们似乎被忽略了。如果我在进行表单验证的控制器中移动函数,一切都会像魅力一样工作。我的验证助手是自动加载的。
如果我将它们放在帮助器中,是否有任何理由似乎无法使用这些验证功能?谢谢。
助手和控制器中的功能明显不同。
在您的 中创建一个扩展 ,在其中添加函数,最后设置没有函数名的规则。MY_Form_validation.php
libraries/
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;
}
}
罗宾的回答是最简单的处理方法;但是,您不能这样做的原因是:
查看您的系统/库/Form_Validation.php,行:587
if ( ! method_exists($this->CI, $rule))
{
continue;
}
此检查对所有回调进行。助手不是类,也不是加载到 CI 实例中 - 因此不能从 Form_Validation 库中获得(因为它是在这个方法中专门编码的方式)