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 に答える