2017-01-12 5 views
2

я пытаюсь создать базовый класс в codeigniter.in приложения/ядра в создать файл с именем MY_head.php и код MY_head.php являетсяМой основной класс не My_head найдены в CodeIgniter

class MY_head extends CI_Controller{ 

public function __construct(){ 

    parent::__construct(); 
    } 


    public function load_header(){ 
     //some code here 


     } 

} 

Сейчас я пытаюсь расширить этот класс в моем контроллере practice.php код является

class Practice extends MY_head{ 
    public function __construct(){ 

    parent::__construct(); 

     } 
    function index(){ 


     } 


    } 

, но когда я загрузить контроллер практики в браузере он говорит Фатальная ошибка: Class «MY_head» не найдено в том, где проблема. ? Заранее спасибо Примечание: $ config ['subclass_prefix'] = 'MY_';

ответ

1

Попробуйте положить ниже функции в нижней части конфигурационного файла

/application/config/config.php

function __autoload($class) 
{ 
    if(strpos($class, 'CI_') !== 0) 
    { 
     @include_once(APPPATH . 'core/'. $class . '.php'); 
    } 
} 

и удлиняет Controller

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

class Practice extends MY_head 
{ 
    public function __construct() 
    { 
    parent::__construct(); 
    } 
} 

ИЛИ включают вручную

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

// include the base class 
require_once("application/core/MY_head.php"); 

//Extend the class 
class Practice extends MY_head 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 
} 

?> 
+0

Зачем мне этот класс? действительно ли codeigniter не загружает основные классы автоматически? –

+0

Я думал, что ваша автозагрузка не работает –

+0

только основной класс MY_Controller.php - это автозагрузка, но не другие классы. что может быть причиной? –