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

带点字段名(id.level)无法获取数据,页面无数据显示求助

解决CodeIgniter视图中$row->'id.level'字段无法显示数据的问题

首先明确:$row->'id.level'这种写法本身不符合PHP对象属性的调用语法,这是核心问题之一,可从以下几个方向排查解决:

1. 修正视图中的属性调用语法

PHP对象的属性不能用带单引号和点的格式调用。如果你的level字段来自关联的Karyawan表,先确认模型查询时该字段的名称(或别名),再用正确方式调用:

  • 若查询时直接选中level字段,视图中写:$row->level
  • 若查询时给字段取了别名(比如user_level),视图中写:$row->user_level

2. 检查模型中的关联查询是否正确

因为涉及Pengguna和Karyawan两个表,必须确保模型里正确关联两张表,并且选中了level字段:

// User_model.php 示例修正代码
public function get_user_data() {
    // 明确选中需要的字段,包括Karyawan表的level
    $this->db->select('pengguna.*, karyawan.level');
    $this->db->from('pengguna');
    // 根据实际外键关联两张表,这里假设pengguna表有karyawan_id字段关联karyawan的id
    $this->db->join('karyawan', 'pengguna.karyawan_id = karyawan.id', 'left');
    return $this->db->get()->result();
}

如果担心字段名冲突,可以给level加别名:

$this->db->select('pengguna.*, karyawan.level AS user_level');

3. 调试确认返回数据结构

在控制器中获取数据后,打印调试信息,确认返回的对象里是否包含目标字段:

// User.php 控制器示例
public function form_user() {
    $data['user_list'] = $this->User_model->get_user_data();
    // 打印第一条数据,查看字段结构
    if (!empty($data['user_list'])) {
        print_r($data['user_list'][0]);
        exit;
    }
    $this->load->view('user/form_user', $data);
}

通过这个调试步骤,可以直接看到模型返回的数据里有没有level或你设置的别名字段,避免在视图里无效调试。

4. 核对数据库表结构

最后确认Karyawan表中确实存在level字段,字段名拼写完全一致(注意大小写,MySQL默认不区分,但严格模式下可能有影响)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 17:50:06