8

私はウェブサイトに Codeigniter.2.1.3 を使用しているので、すべてのコントローラーで実行するメソッドを追加できるように CI_Controller を拡張する必要があるので、user_guide の内容を実行しました。

application/core フォルダーに MY_Controller.php という名前のファイルを作成する その中に CI_Controller を拡張する MY_Controller クラスを作成し、通常のコントローラーを次のように MY_controller を拡張するように変更します: MY_controller.php:

class MY_Controller extends CI_Controller{
    protected $page;
    # Constructor
    function __construct (){
        parent::__construct();
        #code shared with all controllers
    }
    public function get_page(){
        #code to get_the right page here
    }
}

Regular.php という名前の通常のコントローラー:

class Regular extends MY_Controller{
     public function __construct(){
         parent::__construct();
     }
     public function index(){
          $this->get_page();
     }
}

しかし、次のエラーが表示され続けます:

致命的なエラー: 2 行目の /var/www/immo/CodeIgniter_2.1.3/application/controllers/regular.php にクラス 'MY_Controller' が見つかりません

4

5 に答える 5

12

MY_Controllerクラスを含めるか、クラスを自動ロードする必要があります。ファイルに以下を追加して自動ロードすることをお勧めしapplication/config/config.phpます。

function __autoload($class)
{
    if (strpos($class, 'CI_') !== 0)
    {
        if (file_exists($file = APPPATH . 'core/' . $class . EXT))
        {
            include $file;
        }
    }
} 
于 2012-11-21T01:28:55.897 に答える
2

$config['subclass_prefix'] = "MY_"

config.phpもちろん、コントローラー名で使用する必要があることをMY_Controller.php確認してください

于 2016-02-28T16:41:29.953 に答える