You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter3 form_validation回调函数异常?求排查解决

解决CodeIgniter表单验证回调错误消息不显示问题

这个问题我之前也碰到过,是CodeIgniter表单验证回调里一个容易踩的小坑!

问题根源

你看到的错误提示"Unable to access an error message corresponding to your field name...",本质是CodeIgniter找不到对应验证规则的自定义错误消息。问题出在set_message的第一个参数上:当使用callback_前缀的自定义规则时,规则的全名是callback_pricing_group,而不是回调函数的名字pricing_group。你当前用pricing_group作为参数,系统无法关联到正确的规则,所以返回了默认错误提示。

修复方案

方案1:修正set_message的参数

把回调函数里的错误消息设置代码修改为:

public function pricing_group($pricing_group) {
    if ($pricing_group > 0) {
        return true;
    } else {
        // 第一个参数改为完整的回调规则名
        $this->form_validation->set_message('callback_pricing_group', 'Invalid Price Group Specified.');
        return false;
    }
}

方案2:在set_rules中直接指定错误消息

也可以跳过回调里的set_message,直接在设置规则时定义错误消息,写法更清晰:

$this->form_validation->set_rules(
    'pricing_group', 
    'Pricing Group', 
    'callback_pricing_group',
    array(
        'callback_pricing_group' => 'Invalid Price Group Specified.'
    )
);

这种情况下回调函数可以简化为:

public function pricing_group($pricing_group) {
    return $pricing_group > 0;
}

额外检查项

  • 确保已正确加载表单验证库:$this->load->library('form_validation');
  • 确认表单字段的name属性严格等于pricing_group,和规则中的第一个参数完全一致
  • 回调函数必须是public访问权限(你当前的代码已经满足)

修改后再测试,当pricing_group的值不大于0时,系统就会返回你自定义的错误消息了。

内容的提问来源于stack exchange,提问作者Eoghan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:31:17