2011-06-15 22 views
0

これはCIで遊んだ私の最初の日であり、これまでのところ本当に好きですが、私自身は解決できない問題があります。問題は、2つのコントローラ機能で1つのビューを生成する必要があることです。一のDIVは、私はloadListための別のビューを(作成することにより、数時間のためにこれを解決することを試みた)と、それを含むテーブルAからIDとテーブルBCodeIgniterビューの問題

public function index()//div A 
{ 
      $data['query'] = $this->db->get_where('beer', array('id' => 1)); 
    $this->load->view('corp/corp_view', $data);  
} 

public function loadList() //div B 
{ 
    $data['q'] = $this->db->get_where('list', array('id' => 1)); 
    $this->load->view('corp/mentor_list_view', $data); 
} 

からアレイ上の他のdivべきループのforeachによって選択された行を含まなければなりません"$ this-> load-> view()"のようなメインビューでは、index()関数のクエリテーブル 'beer'の値を 'list'テーブルからはずしています。繰り返しますが、私はこれを初めて知り、あなたの助けに感謝します。

ありがとうございました。

+0

私はあなたの質問を完全に理解していません。両方のビューを特定のページに読み込もうとしていますか?だからhttp://foo.com/index.php/indexはindex()とloadList()の両方のビューをロードしますか?あなたはもう少し説明的なことができますか? – Obto

+0

こんにちはフォックス。私は2つのテーブルを照会し、両方の結果を同じページに表示する必要があります。私はそれぞれ別のクエリを実行しているコントローラで2つの機能を持っていることを試みていた。私は質問が1ページに戻るデータを組み合わせるために何ができるのだろうと思う。コード例が役に立ちます。 – lusiton

答えて

2

追加情報をありがとう、私は今yahを助けることができます。

Codeigniterでは、ユーザが呼び出すことができない関数を '_'の前に置く場合に使用します。したがってあなたの場合:

public function index()//div A 
{ 
    $data['query'] = $this->db->get_where('beer', array('id' => 1)); 
    $data['query2'] = $this->_mySecondQuery(); 
    $this->load->view('corp/corp_view', $data);  
} 

public function _mySecondQuery() //div B 
{ 
    return $this->db->get_where('list', array('id' => 1)); 
} 

ここで、両方のクエリにアクセスできます。 Btw、私はコントローラで多くのDB作業を行うことをお勧めしません。 DBの作業は、モデルで行われることを意味します。これらの詳細については、Codeigniter Models

+0

あなたの例を使用しようとしましたが、エラー - >未定義の関数_mySecondQuery()を呼び出します。このエラーの原因は何でしょうか?ありがとう – lusiton

+0

ああ申し訳ありませんが、私は$ this->クラスの関数を参照するのを忘れていました。申し訳ありません。 – Obto

+0

ありがとうございます。今度は、コードをコントローラとモデルに分けるようにします。これを行うあなたの方法は何でしょうか?私は本当にこれを行う良い習慣を学びたい。 – lusiton