Codeigniter详情页无法显示数据问题求助
问题分析与解决
你的代码存在两个核心错误,导致页面无法显示数据:
错误1:数据类型不匹配
控制器中使用row_array()方法,它返回的是单条数据的一维数组,而视图里却用foreach循环遍历这个数组——这会遍历数组的每个键值对(比如把title和对应值拆成单独元素),完全不是你要的单条数据结构。
错误2:数组与对象访问语法混淆
row_array()返回的是数组,视图里却用对象的->语法($lowong->title)访问属性,这在PHP中会触发错误,导致数据无法正常输出。
修正方案(二选一即可)
方案1:保持控制器的数组返回,修改视图
控制器代码不变,视图直接访问数组元素,无需循环:
<div class="card-body"> <h5 class="card-title"><?php echo $t_lowongan['title']; ?></h5> </div>
方案2:改用对象返回,匹配视图的访问语法
修改控制器,用row()方法返回对象(而非数组):
public function detail($id){ $data['t_lowongan'] = $this->db->get_where('t_lowongan', array('id_lowongan'=>$id))->row(); $this->load->view('detail_lowongan', $data); }
视图直接访问对象属性,无需循环:
<div class="card-body"> <h5 class="card-title"><?php echo $t_lowongan->title; ?></h5> </div>
额外排查点
- 检查URL是否正确传递了
id参数,比如跳转链接是否为/控制器名/detail/123这类格式 - 在控制器中添加
var_dump($data['t_lowongan']); exit;,确认数据库是否查询到了对应数据 - 确认数据库表
t_lowongan中存在id_lowongan和title字段
内容的提问来源于stack exchange,提问作者Nicho
相关产品推荐
相关产品推荐

