【问题标题】:CodeIgniter Validation Callback not being Called未调用 CodeIgniter 验证回调
【发布时间】:2010-02-07 05:28:53
【问题描述】:

我的验证规则回调函数没有被调用。 正在调用该字段的其他验证规则

$rules[‘login_name’] = “required|max_length[12]|alpha_dash|callback__check_login_name”;
function _check_login_name($login_name) {
    echo "here"; // DOESNT WORK
 }

所以在上面的行中,required、max_length、alpha_dash 被调用,但回调不是。 谢谢!

【问题讨论】:

  • 那么死('这里');反而?可能是正在调用回声,但您只是没有看到它。

标签: validation codeigniter


【解决方案1】:

可能是该方法在某种程度上无法读取超出范围。当您简单地手动(从课堂外)调用 _check_login_name 时,它​​是否有效?如果这不是问题,那么您是否尝试将 echo 放置在系统文件夹的 Form_validation.php 中?在第 581 行之后放置一个系列。之后,需要更多代码才能提供更多帮助。

【讨论】:

  • CI form_validation() 回调在库中不会被调用,它们必须在控制器中。
  • @stef CYS。 CI 不使用 debug_backtrace 来限制代码的执行位置和方式。
【解决方案2】:

为了测试,试试这个而不是 echo:

function _check_login_name($login_name) {
    $this->form_validation->set_message('_check_login_name', 'The callback was called.');
    return FALSE;
}

根据callbacks entry in the CI manual: “如果您的回调返回布尔值 TRUE/FALSE 以外的任何值,则假定该数据是您新处理的表单数据。”

【讨论】:

  • return 的值不应该与 echo 是否正常工作有任何关系,除非他以某种方式在视图内部调用它...
【解决方案3】:

我感觉您正在使用old validation class。试试新的Form Validation Class。我认为旧版本中存在错误。

【讨论】:

  • 可能就是这样;会检查的
猜你喜欢
  • 2011-04-23
  • 1970-01-01
  • 2014-09-24
  • 1970-01-01
  • 2016-08-10
  • 1970-01-01
  • 2016-12-14
  • 2018-07-25
  • 2013-05-10
相关资源
最近更新 更多