CodeIgniter后台面板报错Trying to access array offset解决求助
问题解决步骤
一、解决「Trying to access array offset on value of type bool」错误
这个错误的根源是控制器中把$CI->reports_list设为了false,但视图里直接将其当作数组遍历,导致循环时$row变成布尔值false,访问$row['name']自然报错。
修复方案二选一:
- 控制器层面修正:把设置
false的代码改成空数组,确保变量始终是可遍历的类型:// 原代码:$CI->reports_list = false; $CI->reports_list = []; - 视图层面兼容:在遍历前先判断变量是否为有效数组,避免遍历布尔值:
<?php if (is_array($reports_list) && !empty($reports_list)): ?> <?php foreach ($reports_list as $row): ?> <!-- 原$row['name']调用代码 --> <?= $row['name'] ?> <?php endforeach; ?> <?php endif; ?>
二、解决「Undefined variable: id」错误
这个错误是因为你在判断$row为数组后,代码中用到了未定义的$id变量,分三种情况处理:
- 情况1:$id应该从$row中获取
检查代码中是否把$row['id']误写成了$id,修正为:// 原错误代码:echo $id; echo $row['id']; - 情况2:$id是外部传入的变量
如果$id需要从控制器传递到视图,确保控制器在加载视图时传递该变量:// 控制器中加载视图时添加$id参数 $this->load->view('你的后台视图文件名', [ 'reports_list' => $CI->reports_list, 'id' => 你需要的ID值 // 补充这一行 ]); - 情况3:$id是临时变量
如果是代码中临时使用的变量,先初始化再使用:$id = ''; // 先初始化 // 后续使用$id的代码
内容的提问来源于stack exchange,提问作者16_018_RHR
相关产品推荐
相关产品推荐

