使用数据库填充页面

时间:2012-12-07 18:41:22

标签: php codeigniter

我开始学习如何使用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();
    }

}

为什么它不显示数据库数据?

2 个答案:

答案 0 :(得分:1)

而不是result()使用row(),因为您只需要/想要一行:

return $q->row();

result()返回结果数组,即使只有一个。验证你也得到了一个结果是个好主意。

接下来,只需使用$data['data']

,而不是$data
$data = $this->Model_Pages->get_data_page($slug);

事实上,如果CI(非常有限)模板解析器不能与对象数据类型一起使用,则可能需要row_array()

return $q->row_array();

这应该创建CI的解析器可以使用的键/值数组结构。

答案 1 :(得分:0)

缺少$ slug?

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