2010-09-28 5 views
4

Я использую CodeIgniter (v1.7.2), и я создал настраиваемый контроллер, который включает аутентификацию под названием MY_Controller (на основе сообщения блога Дэвида Винтера). Когда я загружаю любые контроллеры, которые используют этот базовый класс, я получаю эту ошибку;CodeIgniter customer Класс контроллера говорит, что сеанс не определен

* Сообщение: Не определено свойство: MY_Controller :: $ сессия *

Обратите внимание, что я самозарядные 'сессии' (и 'MY_controller' как библиотека), так как:

$autoload['libraries'] = array('database', 'session', 'MY_Controller'); 

Вот MY_Controller:

class MY_Controller extends Controller { 
    public function __construct() { 
     parent::__construct();  
     if (!$this->session->userdata('loggedin')) { <-- error is here 
      header('Location: /sessions/login'); 
      exit(); 
     } 
    } 
} 

Вот контроллер, который я пытаюсь нагрузки:

class Welcome extends MY_Controller { 

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

    function index() { 
     $this->load->view('header'); 
     $this->load->view('welcome_message'); 
     $this->load->view('footer'); 
    } 
} 

Когда я var_dump $this->session выше, где происходит ошибка, я могу видеть, что это NULL. Даже установка $this->load->library('session'); в конструктор MY_Controller не работает. Почему он не загружается должным образом?

Благодаря

+0

Может ли мы увидеть соответствующую часть вашей автозагрузки конфигурации? – treeface

ответ

5

Попробуйте принимать MY_Controller из автозагрузки.

$autoload['libraries'] = array('database', 'session'); 

Вы расширяете класс контроллера, который автоматически загружается на CodeIgniter, поскольку это является частью ядра

+0

Это сделало. Спасибо. –

Смежные вопросы