2012-12-07 85 views
0

我開始學習如何使用CodeIgniter,並且我想使用數據庫創建靜態頁面。使用數據庫填充頁面

筆者認爲:

<html> 
    <head> 
     <title>{blog_title}</title> 
    </head> 
    <body> 
     <h1>{page_title}</h1> 
     <p>{page_content}</p> 
    </body> 
</html> 

我的控制器:

<?php 

class Pages extends CI_Controller { 

    public function view($page = 'contact') { 

     $this->load->model('Model_Pages'); 
     $data['data'] = $this->Model_Pages->get_data_page($page); 
     $this->load->view('template/header'); 
     $this->load->view('pages/' . $page, $data); 
     $this->load->view('template/footer'); 
    } 

} 

我的模型:

<?php 

class Model_Pages extends CI_Model { 

    public function get_data_page($slug) { 
     $this->db->select('blog_title', 'page_title', 'page_content'); 
     $this->db->from('pages'); 
     $this->db->where('slug', $slug); 
     $q = $this->db->get(); 
     return $q->result(); 
    } 

} 

爲什麼它不會顯示數據庫中的數據?

+0

可能有多種原因。你有錯誤嗎? –

+0

您不會將$ slug傳遞給get_data_page(),但這可能只是這裏的一個錯誤(或者您應該會得到一個錯誤) –

+0

爲什麼當你的視圖看起來是一個完整的文檔時,你爲頁眉/頁腳加載? –

回答

1

代替result()使用row(),因爲你只希望/希望一行:

return $q->row(); 

result()返回結果的數組,即使只有一個。驗證你也得到了結果是一個好主意。

下,而不是$data['data'],只是使用$data

$data = $this->Model_Pages->get_data_page($slug); 

事實上,你可能需要row_array()在替代情況下CI的(非常有限)模板解析器不與對象數據類型的工作:

return $q->row_array(); 

這應該創建CI解析器可以使用的鍵/值數組結構。

+0

不是slu。子。你有沒有測試過這個,並通過網址slu passed。 – Renato

+0

看起來像你編輯你的文章。不掛斷。 –

+0

好的,我刪除了沒有傳入'$ slug'的部分,現在就試試。 –

0

缺少$ slug?

$data['data'] = $this->Model_Pages->get_data_page(); 
public function get_data_page($slug)