1

名前の付いたコアコントローラーを作成し、構成Role_Adminプレフィックスを設定しました

$config['subclass_prefix'] = 'Role_';

これがフォルダ内Role_Admin.phpののコードですcore

class Role_Admin extends CI_Controller {
    function __construct() {

    }
}

私が書くときのコントローラーフォルダーに

class admin extends Role_Admin { ... }

私は得る

致命的なエラー:クラス'Role_Admin'が見つかりません

私がしていることに何か問題があります。

編集:(私ははるかに優れたクイックフィックスを作成しました。作成した新しいコアファイルはMY_Controllerを拡張するだけです。次に、コントローラーディレクトリで、作成したコアコントローラーを拡張できます。

class MY_Controller extends CI_Controller {

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

            //include custom core classes
            $core_path = DOCUMENT_ROOT . '/application/core';
            $this->load->helper('file');

            foreach(get_filenames($core_path) as $file) {
                if ($file != 'MY_Controller.php') {
                    if(file_exists($file)) {
                        include_once($file);
                    }
                }
            }
        }

}
4

1 に答える 1

1

設定$config['subclass_prefix']は問題ありませんが、ファイル名が正しくありません。Role_Controller.phpCIは、ではなくファイルを探していますRole_Admin.php

これを行うためのより簡単な方法があり、それはハックのように見えるかもしれませんが、それは完全に合法です。MY_プレフィックスに戻って作成MY_Controller.phpし、そのファイルで、使用するコントローラークラスを定義するだけです。MY_Controller実際にはクラスも必要ありません。例:

// application/core/MY_Controller.php
class Role_Admin extends CI_Controller {}
class AnotherClass extends Role_Admin {}
class SomeOtherClass extends AnotherClass {}

これらのクラスはすべて、コントローラーが拡張できるようになります。

于 2012-11-09T17:37:05.760 に答える