1

新しいファイルを作成せず、データベースからデータを取得せずに動的ページを作成しようとしています...

だから私のテーブルは次のようになります:

Pages
------
id | page_name | text
1  | about     | about page goes here
2  | contact   | contact page goes here

今私の質問は$this->uri->segement(1)、指定されたページ名がデータベースに存在するかどうかを自動的にチェックするにはどうすればよいですか?

これをすべて処理する新しいコントローラーを作成する必要がありますか?

4

1 に答える 1

1

チェックしたいページが複数ある場合は、それらのページを管理するPagesコントローラーを用意することをお勧めします。このようなもの

class Pages extends CI_Controller {
    public function view($page_name)
    {
        $this->load->Pages_model();

        if($this->Pages_model->does_exist($page_name))
        {
            // Does exist. Do things.
        } else
        {
            show_404();
        }
    }
}

あなたのでは、あなたはあなたと ページ(そしてあなたが持っているかもしれない他のもの)をページコントローラにroutes.phpルーティングします。aboutcontact

$route['about'] = "pages/view/about";
$route['contact'] = "pages/view/contact";

ページPages_model名がデータベースに存在するかどうかをチェックする簡単な関数が必要になります。

function does_exist($page_name) {

    $this->db->where('name', $page_name); // assuming you have a table with a `name` field
    $query = $this->db->get('pages'); // select from the `pages` table
    return $query->num_rows() > 0; // returns bool

}
于 2012-06-04T18:12:45.860 に答える