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

1行だけを期待/したいのでresult()使用する代わりに:row()

return $q->row();

result()結果が 1 つしかない場合でも、結果の配列を返します。結果が得られたことも検証することをお勧めします。

次に、代わりに を$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 に答える