CodeIgniter视图内执行数据库查询无法填充数据问题求助
解决CodeIgniter视图中数据库数据无法填充的问题
嘿,我来帮你搞定这个数据填充的问题!你现在遇到的问题主要有两个核心原因:违反了CodeIgniter的MVC架构规范,还有代码里的变量名写错了,咱们一步步来修复:
1. 先纠正MVC架构的使用方式
CodeIgniter是严格遵循MVC模式的框架,视图(View)的职责仅仅是展示数据,绝对不能直接在视图里调用模型/控制器的查询方法,这会导致逻辑混乱,也是你数据无法正常加载的原因之一。你需要把数据查询的逻辑移到控制器里:
假设你的控制器文件是YourController.php,在对应的方法里完成数据查询,再把结果传递给视图:
public function show_data() { // 先确保你已经获取到$zxc['id']的值,比如从URL参数或者会话中获取 $zxc_id = $zxc['id']; // 加载你的模型(如果没在config里自动加载的话) $this->load->model('ctrlzxc'); // 调用模型的查询方法,获取数据 $data['list'] = $this->ctrlzxc->queryZXC($zxc_id); // 将数据传递给视图 $this->load->view('your_view_file', $data); }
2. 修正视图中的变量错误
你原来的视图代码里有个明显的变量名错误:循环变量是$li,但你却用了$ldtls['dateAdded'],这肯定无法获取到数据!同时建议加上空数据的判断,提升用户体验:
<?php // 在你的视图文件里 ?> <?php if (!empty($list)): ?> <?php foreach ($list as $li): ?> <?= $li['dateAdded'] ?> <?php endforeach; ?> <?php else: ?> <p>暂时没有相关数据哦</p> <?php endif; ?>
3. 检查模型方法是否正确返回数据
最后别忘了确认你的ctrlzxc模型里的queryZXC方法是否正确执行查询并返回结果,比如用CodeIgniter的查询构建器来确保正确性:
// 在application/models/ctrlzxc.php里 public function queryZXC($id) { // 替换成你的实际表名 $query = $this->db->get_where('your_table', ['id' => $id]); // 返回结果数组(如果需要对象的话用$result()) return $query->result_array(); }
按照这几步调整后,数据应该就能正常填充到视图里啦!
内容的提问来源于stack exchange,提问作者alpomvra
相关产品推荐
相关产品推荐

