2

デフォルトのCI_Controllerクラスを拡張する独自のクラスでコントローラーを拡張しようとしています。それが機能しないことを除いて。

サブクラスが見つからないと表示されます。私のサブクラスはapplication/coreにあり、My_Control_Panelという名前です。

私のサブクラスを拡張する私のクラス:

if (!defined('BASEPATH')) exit('No direct script access allowed');

class Developers extends My_Control_Panel
{
    public function __construct()
    {
        parent::__construct();
        $this->load->helper('form');
        $this->load->helper('url');
        $this->load->database();

        $this->checkIfLoggedIn();
        $this->checkIfAllowedToViewPage();
}

私のサブクラス:

if (!defined('BASEPATH')) exit('No direct script access allowed');

class My_Control_Panel extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
    }
}

それは動作するはずですが、私のサブクラスが見つからないと言い続けます。

4

3 に答える 3

3

CIに拡張クラスを取得させたい場合は、名前を付ける必要がありますMY_ControllerMY_パーツは構成可能ですが、他のパーツは構成できません。

MY_パーツはから来ますconfig/config.php:

$config['subclass_prefix'] = 'MY_';
于 2012-08-15T10:03:33.677 に答える
3

My_Controller.phpフォルダ内でこのようにファイルに名前を付けてcoreから、次のようにコードを入力する必要があります。

if (!defined('BASEPATH')) exit('No direct script access allowed');

class My_Control_Panel extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
    }
}

これはCodeIgniterでそれを行う正しい方法であり、インクルード1の最初の回答で述べたようにではありません。

于 2012-08-15T12:51:55.480 に答える
2

My_Control_Panel次のように、親クラス( )をサブクラス( )に含める必要がありますDevelopers

if (!defined('BASEPATH')) exit('No direct script access allowed');

include_once '../path/to/mycontrolpanel.php';

class Developers extends My_Control_Panel
{
    // whatever
}
于 2012-08-15T10:00:39.620 に答える