如何将数据从模型返回到控制器和控制器到codeigniter中的视图

问题描述:

我正在使用codeigniter。我有一个表格要显示在视图文件中。所以我有一个模型,我开始查询从表中获取数据。如何将数据从模型返回到控制器和控制器到codeigniter中的视图

function my_active_requests() 
    { 
     $user_id = $this->session->userdata('user_id'); 
     $this->db->select('id,request_date,required_by_date'); 
      $this->db->where('requested_by',$user_id); 
      return $this->db->get('requests'); 
      ///also tried with 
      //$query = $this->db->get('requests'); 
     ///$number_of_rows = $query->num_rows; 
      //return $query; 
      //return $number_of_rows; 
      //but no result 
    } 

这是模型函数。

这是我的控制器

function my_active_req() 
     { 

      $this->bloodline_model->my_active_requests(); 
        //also tried without this// 
        $query = $this->db->get('requests'); 
        //and this// 
      $number_of_rows = $query->num_rows; 
      $this->load->view('my_active_req'); 
     } 

,这是我的看法

<?php foreach ($query->result() as $row) { ?> 
     <tr> 
      <td><?php echo $row->id; ?></td> 
      <td><?php echo $row->request_date; ?></td> 
      <td><?php echo $row->required_by_date; } ?></td> 
     </tr> 
    </table> 

但错误是不确定的变量$查询。 我想,我无法将我的模型中的$查询和其他数据返回到我的视图中的控制器和控制器。 请为我提供解决方案。 `

改变这一行:

<?php 
$this->load->view('my_active_req', array(
    'query' => $query 
)); 

view()加载函数的第二个参数,可以传递变量到视图中。

但是,你基本上绕过了MVC分离的目的。你希望控制器从模型中“询问”信息(不仅仅是直接来自数据库;否则,模型的重点是什么?),然后将它“传递”给视图。控制器知道视图需要什么功能。

+0

但与回报$模型功能正确..returning这个 - > DB->获取( '请求' ); – user1110597 2012-03-26 19:56:01

+0

可能不是。您通常会返回一个数组或标准对象,而不是'CI_DB_Result'对象。试试'$ this-> db-> get('requests') - > result()' – landons 2012-03-27 14:16:25

型号

function my_active_requests() 
{ 
    $user_id = $this->session->userdata('user_id'); 
    $this->db->select('id,request_date,required_by_date'); 
    $this->db->where('requested_by',$user_id); 
    $query = $this->db->get('requests'); 
    if($query->num_rows) { 
     return $this->db->result(); 
    } 
     return false; 
} 

控制器

function my_active_req() 
{ 

    $results = $this->bloodline_model->my_active_requests(); 
    $this->load->view('my_active_req', array('user_data' => $results)); 
}  

查看

<?php 
    if($user_data) { 
     foreach ($user_data as $row) { ?> 
    <tr> 
     <td><?php echo $row->id; ?></td> 
     <td><?php echo $row->request_date; ?></td> 
     <td><?php echo $row->required_by_date; } ?></td> 
    </tr> 
</table>