CodeIgniter应用出现Array to string conversion错误,求排查解决
问题原因及解决方法
核心错误点
你遇到的Array to string conversion错误,根源是Model返回结果与View使用逻辑不匹配:
- Model的
getKeterangan方法通过->result()返回的是一个对象数组(包含多条考勤记录),但View里直接把$keterangan当作字符串渲染option的value和文本,PHP尝试将数组/对象转为字符串时触发了这个报错。
分步修复
1. 修正Controller的数据传递逻辑
确保Controller正确调用Model并将数组数据传递给View:
// Controller中获取考勤记录列表并传给View $keterangan_list = $this->guru_m->getKeterangan($id_kelas); $this->load->view('你的视图文件名', ['keterangan_list' => $keterangan_list]);
2. 修改View代码,循环渲染选项
因为Model返回的是多条记录,View需要遍历数组生成每个option,不能直接使用单个变量:
<!-- 替换原View代码,遍历数组生成选项 --> <?php foreach ($keterangan_list as $item): ?> <option value="<?= $item->keterangan; ?>"><?= $item->keterangan; ?></option> <?php endforeach; ?>
注:如果你的absensi表中存储考勤状态的字段不是keterangan,请替换为实际字段名,比如status等
3. 额外检查(可选)
Controller的批量保存逻辑中,要确保$input['keterangan']是合法的字符串数组,避免后续出现类型不匹配问题。
内容的提问来源于stack exchange,提问作者Terizla Smith
相关产品推荐
相关产品推荐

