You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

视图变量未定义:如何从Login控制器访问指定变量(CodeIgniter)

解决视图中Undefined Variable: data的问题

看起来你遇到了视图无法获取控制器变量的问题,我帮你分析下代码里的问题并给出修复方案:

1. 修复控制器中的变量赋值错误

你在Login控制器开头的两行代码有语法错误,导致变量没有正确初始化:

// 错误写法
$this->$data['login'] = $this->Login_Model->get_news();
$this->$data['title']= 'Data Pendaftaran';

这里的$data是你手动创建的普通数组,不需要用$this->来调用,正确写法应该是:

// 正确写法
$data['login'] = $this->Login_Model->get_news();
$data['title'] = 'Data Pendaftaran';

去掉多余的$this->后,数组才能正常存储数据并传递给视图。

2. 确保访问Login控制器的正确路径

因为你的默认控制器设置为News,直接访问网站根路径会加载News控制器的方法,而不是Login的。要触发Login控制器的index方法,你需要访问:

http://你的域名/login

或者用CodeIgniter的辅助函数生成正确链接:

echo site_url('login');

只有这样,Login控制器里的$data变量才会被传递到anggotapendaftaran视图中。

3. 验证数据传递(可选调试步骤)

如果修复后还是有问题,可以在控制器中临时添加调试代码,确认模型是否返回了数据:

$data['data'] = $this->Login_Model->get_data_list($config["per_page"],$data['page']);
var_dump($data['data']); // 临时查看数据结构
exit;

如果输出有正常的查询结果,说明模型没问题,变量传递的修复已经生效。

4. 修正分页配置的拼写错误

你的分页配置里有几处拼写错误,会导致分页样式异常,建议修正:

// 错误的写法(多了个l)
$config['next_tagl_close'] ='<span aria-hidden="true">&raquo;</span></span></li>';
$config['prev_tagl_close'] ='</span>Next</li>';
$config['first_tagl_close'] = '</span></li>';
$config['last_tagl_close'] ='</span></li>';

// 正确写法
$config['next_tag_close'] ='<span aria-hidden="true">&raquo;</span></span></li>';
$config['prev_tag_close'] ='</span>Prev</li>';
$config['first_tag_close'] = '</span></li>';
$config['last_tag_close'] ='</span></li>';

完成以上修复后,访问login路径,视图就能正常获取到$data变量,不会再报未定义的错误了。

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

火山引擎 最新活动