0

CIについてもっと勉強しようとしています。昨日、MY_Controller.php を実装しようとしました。ユーザー ガイドの説明を読みましたが、その利点がわかりませんでした。そしてもう1つ、私がそれを使用するという考えを理解していませんでした。私は application/core/MY_Controller.php を書きました

class MY_Controller extends CI_Controller {

  protected $data = array();

  function __construct() {
    parent::__construct();
  }

  function render_page($view) {
    //do this to don't repeat in all controllers...
    $this->load->view('templates/header', $this->data);
    //menu_data must contain the structure of the menu...
    //you can populate it from database or helper

    $this->load->view($view, $this->data);
    $this->load->view('templates/footer', $this->data);
  }
}

これは私のホームコントローラー application/controllers/home.php

class Home extends  MY_Controller  {

        public function view($page = 'home')
        {
         $this->load->helper('text');
            $this->data['records']= $this->services_model->getAll();

            if ( ! file_exists(APPPATH.'/views/pages/'.$page.'.php'))
            {
                // Whoops, we don't have a page for that!
                show_404();
            }

            $data['title'] = ucfirst($page); // Capitalize the first letter


              $this->render_page('pages/'.$page)
}
}

私のビューは私のapplication/views/pages/home.phpにあります。config/routes.php:

$route['default_controller'] = 'home/view';
$route['(:any)'] = 'home/view/$1';

今、404エラーが発生しました。私の質問は次のとおりです。

1) 404 エラーが発生するのはなぜですか? 2) アバウト ページを追加する場合、新しいコントローラーを追加するか、ホーム コントローラーを使用する必要がありますか?

4

4 に答える 4

1

MY_Controller コントローラを application/core フォルダに入れます 次に使用します

MY_Controllerフォルダー パス application/core/MY_Controller.php

**ホーム コントローラー ** フォルダー パス application/controllers/Home.php

于 2016-08-22T14:45:48.983 に答える
0

現在動作しています。クリーンなディレクトリ構造で修正しました。しかし、ソースコードにテンプレート/ヘッダーとフッターを表示することはできません。

于 2012-08-02T07:24:17.543 に答える
0
  1. 404 が返される理由は、インデックス関数がなかったためです。CodeIgniter はデフォルトで、コントローラーが呼び出されたときに index 関数をロードします。

  2. 特に問題はありませんが、新しいコントローラーを開くことをお勧めします。

于 2012-08-02T05:51:39.767 に答える
0

class Home は MY_Controller を拡張します

クラス Home は CI_Controller を拡張します

于 2012-08-02T05:49:41.860 に答える