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

CodeIgniter MVC表格填充时报Invalid argument supplied for foreach()错误

报错原因

  • 核心原因是数据赋值和视图加载的执行顺序颠倒:现有代码中,先执行了$this->load->view('crm/reports/totallistings',$content,true)将$content传入视图渲染,之后才执行$content['groupedleads'] = $this->leads_model->get_listingstatus($fdate,$tdate)给groupedleads赋值。视图渲染时$groupedleads变量未定义,默认值为NULL,把NULL传入foreach就会触发该错误。
  • 潜在的次要原因:就算调整顺序后,如果模型get_listingstatus方法在无匹配数据时返回的不是数组(比如返回false、NULL或空字符串),同样会触发该报错。

修复方案

  1. 首先调整控制器代码的执行顺序,先完成所有数据查询赋值,再加载视图,修改后的控制器代码如下:
public function totallistings($slug='')
{
    $this->load->library('pagination');
    $main['page_title']=$this->config->item('site_name').' - Listings Reports';
    $main['header']=$this->adminheader();
    $main['footer']=$this->adminfooter();
    $main['left']=$this->adminleftmenu();  
    $content = []; // 初始化为数组而非空字符串,写法更规范
    $fdate = $this->input->post("fdate");
    $tdate = $this->input->post("tdate");
    // 日期赋值逻辑可简化
    $content['fdate'] = $fdate ?? '';
    $content['tdate'] = $tdate ?? '';
    // 先查询数据,再加载视图
    $content['groupedleads'] = $this->leads_model->get_listingstatus($fdate,$tdate);
    // 额外加一层兜底,保证传给视图的一定是数组
    if (!is_array($content['groupedleads'])) {
        $content['groupedleads'] = [];
    }
    $main['content']=$this->load->view('crm/reports/totallistings',$content,true);
    $main['jsArray'] = array('public/assets/plugins/datatables/jquery.dataTables.min.js' );  
    $main['cssArray'] = array('public/assets/plugins/datatables/jquery.dataTables.min.css','public/assets/css/reports.css');
    $this->load->view('crm/main',$main);
}
  1. 建议同步调整模型的get_listingstatus方法,保证查询结果始终返回数组:查询结果用result_array()接收,无数据时直接返回空数组[],避免返回非数组类型值。
  2. 也可以在视图的foreach遍历前加判断,只在$groupedleads为非空数组时遍历:
<?php if (!empty($groupedleads) && is_array($groupedleads)): ?>
    <?php foreach ($groupedleads as $item): ?>
    <!-- 表格渲染逻辑 -->
    <?php endforeach; ?>
<?php else: ?>
    <tr><td colspan="对应列数">暂无匹配数据</td></tr>
<?php endif; ?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:36:00