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

CodeIgniter插入数据报错:无可插入数据,同函数在其他模块可用

问题原因

报错「There is no data to insert.」的核心原因是模型允许的字段与控制器传入的字段不匹配,导致插入数据被框架过滤为空:

  • 模型中$allowedFields定义的白名单字段是['page_title','page_status']
  • 控制器构造的插入数组键名是['post_title'=>$page_title,'post_status'=>$page_status],和白名单完全不匹配
  • 调用insert($data,false)时,框架会自动过滤掉不在白名单中的字段,最终无合法数据可插入,触发报错
修复方案

任选以下一种方式即可解决问题:

方式一:修正控制器的字段名(推荐,保持模型配置不变)

将控制器中的数组键名改为模型允许的字段:

$page_data_to_add = array('page_title' => $page_title, 'page_status' => $page_status);
$data_added = $this->page->store($page_data_to_add);

方式二:更新模型的白名单字段

如果业务需要保留post_title和post_status作为字段名,修改模型的$allowedFields:

protected $allowedFields = ['post_title','post_status'];

补充说明:你的store函数在其他场景能正常运行,是因为那些场景中传入的字段名与对应模型的allowedFields匹配,当前场景仅因字段名不一致导致过滤问题,修正后即可正常插入数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:40:26