【问题标题】:Validation callback never calling function验证回调从不调用函数
【发布时间】:2016-03-15 17:03:52
【问题描述】:

我有以下表单验证:

$this->CI->form_validation->set_rules(
    'email', 'lang:email', 'callback_validate_email');

在同一个控制器中我有以下功能(请原谅这里的调试):

public function validate_email($string) {
    echo 'test val';
    exit;
    $valid = $this->CI->force_model->validate_email($string);
    if(!$valid) {
        $this->CI->form_validation->set_message('validate_email', 'lang:email');
        return false;
    } else {
        return true;
    }
}

我的问题是,函数永远不会通过回调调用。谁能建议这里可能存在什么问题?

【问题讨论】:

  • 如果在同一个控制器中,或者根本就在一个控制器中,为什么要使用$this->CI?您不需要它,并导致我们认为您显示的代码不是来自控制器。
  • @Narf 它是一个控制器和同一个控制器。 $this->CI 在整个控制器中使用,这是一个问题吗?
  • 这本身不是问题,但它是多余的,对你没有任何帮助。

标签: php codeigniter


【解决方案1】:

我看到其他人有这个问题,奇怪的是他们也在使用$this->CI->...

他们的解决方案是扩展验证库并在那里添加您的自定义验证回调。更多信息在这里:CodeIgniter Validation in Library does not accept callback

如果您改为使用$this->form_validation->... 设置表单验证规则,它是否有效?例如

$this->form_validation->set_rules(
    'email', 'lang:email', 'callback_validate_email');

【讨论】:

  • 谢谢你,我得到了错误:“调用非对象上的成员函数 set_rules() ”但是使用该方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-24
  • 2015-07-04
  • 1970-01-01
  • 2016-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多