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

}

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

4

2 回答 2

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 解析器可以使用的键/值数组结构。

于 2012-12-07T18:45:56.267 回答
0

缺少 $slug?

$data['data'] = $this->Model_Pages->get_data_page();
public function get_data_page($slug)
于 2012-12-07T18:47:09.643 回答