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

CodeIgniter取数正常但视图报Undefined variable: info错误

解决CodeIgniter中"Undefined variable: info"的问题

嘿,我瞅了你的代码,虽然数据能正常显示,但出现Undefined variable: info的报错,这多半是代码里的几处小疏忽导致的,咱们一步步来搞定它:

首先揪出Controller里的无效代码

你看这段Controller代码:

public function home() {
    $this->load->model('Mymodel');
    $this->Mymodel->result(); // 这行是多余的!
    $data['info'] = $this->Mymodel->database();
    $this->load->view('home',$data);
}

你调用了$this->Mymodel->result();,但你的Model里根本没有定义result()方法,这行不仅没用,还会触发额外的错误,直接删掉它就好。

给Model做个小优化(可选但推荐)

你的Model代码可以简化一下,CodeIgniter提供了更简洁的数据库查询写法,而且建议你在application/config/autoload.php里把数据库库设为自动加载($autoload['libraries'] = array('database');),这样就不用每次在Model里手动加载了:

public function database() {
    return $this->db->get('info')->result_array();
}

View里加个保险,避免变量未定义

虽然你已经把$info传给了View,但为了彻底杜绝这类报错,建议在View里使用$info之前先判断它是否存在且是数组:

<?php 
$u = 0;
// 先确认变量存在再循环
if (isset($info) && is_array($info)) {
    foreach ($info as $item) {
        // 你的循环内容
        echo $item['xxx']; // 替换成你的实际字段名
        $u++;
    }
}
?>

最后给Controller加个兜底判断(可选)

如果担心数据库查询返回的结果异常,也可以在Controller里给$info加个兜底,确保它至少是个空数组:

public function home() {
    $this->load->model('Mymodel');
    $data['info'] = $this->Mymodel->database() ?? []; // 用空合并运算符兜底
    $this->load->view('home',$data);
}

这样调整之后,既保留了数据正常显示的功能,也能彻底解决Undefined variable: info的报错啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:40:07