从 codeigniter 中的两个不同模型检索数据并在一个视图中显示

Retrieving data from two different models in codeigniter and showing it in one view

我是 CI 的新手,我想知道如何从不同的模型但相同的视图中检索数据。

我有2个模型,一个是分摊费用,一个是总价分摊费用。

    function result_getAssessment($studentid)
            {

                $sql=
                "
                select g.studentid, sb.subjectcode, s.price
                FROM grades g
                INNER JOIN subjectblocking sb ON g.blockcode=sb.blockcode
                INNER JOIN subjects s ON sb.subjectcode=s.subjectcode
                WHERE studentid='$studentid'
                ";

                $result = $this->db->query($sql);
                $result = $result->result();
                return $result; 

            }

function result_totalAssessment($studentid)
        {
            $sql=
            "
            SELECT sum(s.numofunit) total_units, sum(s.price) total_tuition FROM subjects s
            INNER JOIN subjectblocking sb ON s.subjectcode=sb.subjectcode
            INNER JOIN grades g ON sb.blockcode=g.blockcode
            WHERE g.studentid='$studentid'
            ";

            $result = $this->db->query($sql);
            $result = $result->result();
            return $result; 
        }

我的控制器:

 function getAssessment() 
{
   $this->load->view('header');
   $this->load->view('navbar');
   $this->load->view('sidebar');
   $this->load->view('footer');
   $studentid = $this->session->userdata('studentid');
   $data['studentid'] = $studentid;
   $data['query'] = $this->m_login->result_getAssessment($studentid);
   $this->load->view('v_assessment',$data);
   $this->gettotalAssessment();
}

  function gettotalAssessment() 
{
   $studentid = $this->session->userdata('studentid');
   $data['studentid'] = $studentid;
   $data['query'] = $this->m_login->result_totalAssessment($studentid);
   $this->load->view('v_assessment',$data);
}

我的看法:

<?php foreach ($query as $row){ ?>

              <tr>
              <td> <?php echo $row->subjectcode;?> <br></td>
              <td> <?php echo $row->price;?><br></td>
              <td> <?php echo $row->total_tuition;?><br></td>
              </tr>
<?php } ?>  

请帮助我,如何从两个模型中检索数据并从一个视图中显示它。提前致谢!

实际上你在 getAssessment() 中加载视图后调用 $this->gettotalAssessment(); 函数你需要在你的控制器中这样做

function getAssessment() 
{
   $this->load->view('header');
   $this->load->view('navbar');
   $this->load->view('sidebar');
   $this->load->view('footer');
   $studentid = $this->session->userdata('studentid');
   $data['studentid'] = $studentid;
   $data['query'] = $this->m_login->result_getAssessment($studentid);
   $data['totalAssessment'] = $this->m_login->result_totalAssessment($studentid);
   $this->load->view('v_assessment',$data);

}

在您看来,您可以通过

访问总评估
$totalAssessment

这在 ,codeigniter documentation 中似乎微不足道。虽然我对 codeigniter 比较陌生,但我的贡献可能很方便。它是这样的: 确保加载两个模型(比如在控制器 class 构造函数中)。 那么你的代码中有这两行导致了问题

1. $data['query'] = $this->m_login->result_getAssessment($studentid); <<<found in getAssessment() method

2. $data['query'] = $this->m_login->result_totalAssessment($studentid); <<<found in  gettotalAssessment()  method

您必须为这些结果指定不同的数组键
因为您正在动态地构建数组。见:php manual 另请注意,当您在指定现有索引的同时向数组添加元素时,该索引处的值将被新值覆盖。希望这能为您的解决方案搜索带来更多内容。