0

在我的控制器中,我从那里获取数据(效果很好):

$data['query'] = $this->db->query("MY DB QUERY");  
$this->load->view('shopci_view', $data);

从类模型函数中获取数据:

    class Shopci_model extends CI_Controller {

      function __construct()
      {
        parent::__construct(); //model constructor
      }

      //display sale itmes on shopci_view.php
      function sale_items()
      {    

        $query = $this->db->query('MY DB QUERY - SAME AS ABOVE');

        return $query->result();
      }

  }

新的控制器功能:

//load model, auto connect to db
$this->load->model('Shopci_model', '', TRUE);    
//Display items for sale
$data['query'] = $this->Shopci_model->sale_items();  
$this->load->view('shopci_view', $data);  

错误:

致命错误:在 shopci_view 中的非对象上调用成员函数 result()

这是在我切换到模型之前工作的视图中的行(没有更改视图):

<?php foreach($query->result() as $row): ?>

任何帮助表示赞赏。

谢谢你。

4

2 回答 2

1

在您的模型中,您希望返回数据以传递给控制器​​。所以在你的模型中你会有

function sale_items()
{
    $query = $this->db->query(SAME AS OLD);
    return $query;
}

然后您的控制器将是相同的,您视图中的 foreach 应该如下

<?php foreach ($query as $row): ?>
于 2012-07-17T04:48:59.593 回答
1

在您的模型中,您将 $query 作为 result() 数组返回给控制器。

所以你不能再使用'foreach $query->result()' - 因为你已经这样做了;

这应该工作

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

或者,如果您愿意 - 只需将模型从

 return $query->result(); 

 return $query;
于 2012-07-17T03:46:02.220 回答