Контроллер расширения Codeigniter не работает


Я пытаюсь расширить контроллер своим собственным классом, который расширяет класс CI_Controller по умолчанию. Только это не работает.

Он говорит, что не может найти мой подкласс. Мой подкласс расположен в приложении/ядре и называется 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();
    }
}

Он продолжает говорить, что не может найти мой подкласс, хотя он должен работать.

Author: DijkeMark, 2012-08-15

3 answers

Вы должны назвать свой файл так 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, а не так, как указано в первом ответе с включением..

 3
Author: Zaher, 2012-08-15 12:51:55

Если вы хотите, чтобы CI выбрал ваш расширенный класс, вам придется назвать его MY_Controller. Часть MY_ настраивается, но другие части - нет.

Часть MY_ приходит из config/config.php:

$config['subclass_prefix'] = 'MY_';
 3
Author: complex857, 2012-08-15 10:03:33

Вам нужно будет включить родительский класс (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
}
 2
Author: Matthew, 2012-08-15 10:00:39