从 session 打印查询值以查看错误未定义索引:DCM_TITLE

print query values from session to view error Undefined index: DCM_TITLE

我是 CodeIgniter 新手。

我的控制器中有两个函数。在使用 post 方法的方法中,我创建了数据数组,然后将该数组放入 session。在另一个函数中,我需要另一个值,如标题或日期(因为在 session 中我只有 ID 值),所以我将 ID 值发送到模型函数,然后我用我需要的数据加载视图。然后在视图中打印出我需要的数据。但是我收到一条错误消息

Message: Undefined index: DCM_TITLE

控制器功能码:

 public function visi_registravimas(){
    $this->output->enable_profiler(TRUE);
    $DCM_ID = $_SESSION['DCM_ID'];
    $PRD_ID = $_SESSION['PRD_ID'];
    $result['documents'] = $this->Skaitikliu_registras_model->setDocument($DCM_ID);
    $result['periods'] = $this->Skaitikliu_registras_model->setPeriod($PRD_ID);
    $this->load->view('skaitikliu_registras/visi_registravimas_view',$result);    
}

型号:

public function setDocument($DCM_ID){
    $query = $this->db->query("SELECT * FROM RA_DOCUMENT WHERE DCM_ID='$DCM_ID'");
    
    return $query;
}

public function setPeriod($PRD_ID){
    $query = $this->db->query("SELECT * FROM RA_PERIOD WHERE PRD_ID='$PRD_ID'");

    return $query;
}

这就是我在 view 中打印数据的方式:

<body>
    <?php $this->load->view('navbar_view'); ?>
    <?php foreach($documents as $document) : ?>
        <?php echo  $document['DCM_TITLE']; ?>
    <?php endforeach ?> 
</body>

在模型查询中更改:

return $query;

return $query->result_array();

result_array() returns查询结果为纯数组格式。

注意:- 有关此的更多信息

https://codeigniter.com/userguide3/database/results.html

为了扩展 答案,我还建议开始使用查询生成器,而不是自己编写查询。

这是一个很好的做法,因此如果您在任何情况下将数据库从 MYSQL 更改为 postgresql 或任何其他数据库引擎,您都不需要更改模型的任何内容。

在这种情况下,您的模型函数将如下所示:

public function setDocument($DCM_ID){
    $q = $this->db->where('DCM_ID', $DCM_ID)->get('RA_DOCUMENT');
    return $q->result_array();
}

public function setPeriod($PRD_ID){
    $q = $this->db->where('PRD_ID', $PRD_ID)->get('RA_PERIOD');
    return $q->result_array();
}

通过这种方式,您可以获得更清晰的代码和可以维护更长时间的代码。