我使用config.php存储所有form_validation规则......但是我想将回调函数存储在一个文件中,我该怎么办呢?有任何想法吗?谢谢....
现在我的文件是这样的:
User_controller 在用户控制器下有很多自定义的callback_valid,但我准备移动config.php中的所有规则。我想把_valid回调放到一个类。谢谢 。
答案 0 :(得分:1)
默认情况下,Form_validation lib使用它的$CI
属性来查看回调方法是否存在。通常这会查看当前的控制器。但是,您可以通过扩展验证类并更改run()
方法来更改此行为。
class MY_Form_validation extends CI_Form_validation {
/**
* Support for validation callbacks from any object
*
* @access public
* @param object The object to run callbacks from
* @param string Is there a validation rule for the particular URI being accessed?
* @return bool Validation status
*/
function run($obj = '', $group = '')
{
// Assign the callback object
if (is_object($obj)) $this->CI =& $obj;
// Run the validation as normal
return parent::run($group);
}
}
我们只是重新分配$CI
属性。因此,要使用来自名为user_validation
的类的回调,您可以这样做:
$callback_class = $this->user_validation;
if ($this->form_validation->run($callback_class)) {}
任何加载的类都可以工作,因此您可以在模型或库中存储回调规则,只需将要处理回调的对象传递给run()
方法。
答案 1 :(得分:0)
在这种情况下我要做的只是创建一个MY_Form_validation类来扩展CodeIgniter的表单验证。将“_valid”检查放在新创建的MY_Form_Validation文件中,并按照与默认form_validation规则相同的方式设置“_valid”检查的规则。
像...一样的东西。
class MY_Form_validation extends CI_Form_validation {
function valid_user($str)
{
}
function valid_password($str)
{
}
}