1

Codeigniter を学習しようとしています。CI アプリケーションで application/core/MY_Controller を使用しようとしています。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);
  }

}

今、私はホームコントローラーを次のように書き始めました:

class Home extends MY_Controller {
         function __construct() {
    parent::__construct();
  }

        public function view($page = 'home')
        {
         $this->load->helper('text');
            $data['records']= $this->services_model->getAll();
            if ( ! file_exists('application/views/pages/'.$page.'.php'))
            {
                // Whoops, we don't have a page for that!
                show_404();
            }

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


            $this->load->view('pages/'.$page, $data);


        } 

私のビューフォルダーとして

+pages
  +home.php
+templates
  +footer.php
  +header.php. 

これが私の構成ファイルとルートファイルです。

$config['base_url'] = 'http://localhost/~ytsejam/kirmiziblog/';
$config['index_page'] = 'index.php';
$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';

404 page not found エラーが発生します。MY_Controller で動作するようにアプリケーションを変更するにはどうすればよいですか?

4

1 に答える 1

0

コアクラスの拡張にもこの問題がありました。私の問題は、ローカルサーバーでは機能していましたが、本番サーバーでは機能していなかったことです。本番環境で 404 エラーを受け取りましたが、クラス拡張を使用したコントローラーでのみ発生しました。いくつかの調査の結果、私のローカル サーバーは php バージョン 5.3.x を実行しているのに対し、本番サーバーは 5.2.x を実行していることに気付きました。これを修正するには、本番サーバーを 5.3 にアップグレードする必要がありました。

サイトで使用している php のバージョンを確認するには、次のコマンドをビューに配置します。

<?php echo phpversion() ?>
于 2012-08-09T04:50:56.270 に答える