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

Codeigniter调用form_validation->set_rules时报错Unable to find validation rules

问题解决方法

这个错误是CodeIgniter表单验证类执行run()方法时,检测到没有提前设置任何验证规则导致的,对应你的代码可以按以下步骤排查修复:

  • 开启数组字段验证配置
    CI3默认关闭嵌套数组字段的验证支持,你需要在application/config/form_validation.php中添加配置:

    $config['valid_array_fields'] = TRUE;
    

    没有该配置文件的话新建即可,添加后表单验证类才能正确识别years[intStartYr]这种数组格式的规则字段名。

  • 手动传入待验证数据
    表单验证类默认直接读取全局$_POST数组,可能和你经过XSS过滤后的$postData存在差异,修改run()调用代码,手动传入待验证的数据:

    if ($this->form_validation->run($postData) === FALSE) {
    
  • 补充字段存在性判断
    你当前直接读取$postData['years'],如果请求中没有years字段会触发PHP Notice,且后续逻辑会直接退出导致规则没有设置,修改取值逻辑:

    $yearArray = isset($postData['years']) ? $postData['years'] : [];
    
  • 确认验证库加载
    在方法开头或者控制器构造方法中明确加载表单验证库,避免自动加载失败的问题:

    $this->load->library('form_validation');
    
  • 可选调试方案
    如果修改后还是报错,可以在set_rules执行完成后打印var_dump($this->form_validation->field_data),确认规则是否成功写入,判断是规则设置环节失败还是执行验证环节的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:45:05