2011-06-15 94 views
0

這是我第一次玩CI,我真的很喜歡它,但有一個我自己無法解決的問題。問題是我需要使用兩個控制器函數來生成單個視圖。一個DIV應包括由ID從表A和其他分區選擇的行應陣列CodeIgniter查看問題

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); 
} 

我試圖通過創建loadList另一個視圖(解決這個幾小時)循環的foreach從表B.然後,包括它在像「$ this-> load-> view()」這樣的主視圖中,但是我按照預期從index()函數查詢表'beer'而不是'list'表中獲取值。再次,我是新來的,並會感謝您的幫助。

謝謝你的幫助。

+0

我不完全理解你的問題。你是否試圖在特定頁面上加載兩個視圖?所以http://foo.com/index.php/index加載index()和loadList()中的視圖?你能更具描述性嗎? – Obto 2011-06-15 00:24:23

+0

嗨福克斯。我需要查詢兩個表並在同一頁上顯示兩者的結果。我試圖在控制器中有兩個功能分別執行單獨的查詢。我想這個問題可能是我可以做的,將返回的數據結合到一個頁面上。代碼示例會有所幫助。 – lusiton 2011-06-15 00:32:39

回答

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)); 
} 

現在在索引頁面中您可以訪問這兩個查詢。順便說一句,我不會建議在控制器中做很多數據庫工作。數據庫工作是要在模型中完成的。欲瞭解更多信息,請參閱:Codeigniter Models

+0

我試圖用你的例子,但我得到錯誤 - >調用未定義函數_mySecondQuery()。可能是這個錯誤的原因是什麼?謝謝 – lusiton 2011-06-15 01:02:43

+0

ahha對不起,我忘了用$ this->來引用這個類的功能。對不起, – Obto 2011-06-15 01:09:37

+0

非常感謝您的幫助。現在我將嘗試將代碼與控制器和模型分開。你將如何做到這一點?我很想學習這樣做的好做法。 – lusiton 2011-06-15 01:14:29