2015-04-24 1 views
5

Браузер:Не удается найти указанный класс: session.php в Codeigniter

Не удается найти указанный класс: session.php

Это мой контроллер:

<?php 

class Chat extends CI_Controller { 

    public function __construct() { 

     parent::__construct(); 
     $this->load->model('Chat_model'); 
    } 

    public function index() { 

     $this->view_data['chat_id'] = 1; 
     $this->view_data['student_id'] = $this->session->userdata('student_id'); 
     $this->view_data['page_content'] = 'chat'; 
     $this->load->view('chat'); 
    } 

    public function ajax_addChatMessage() { 

     $chat_id = $this->input->post('chat_id'); 
     $student_id = $this->input->post('student_id'); 
     $bericht = $this->input->post('chat_id', TRUE); 

     $this->Chat_model->addChatMessage($chat_id, $student_id, $bericht); 
    } 
} 

Когда я помещал свою модель в комментарий в parent::__construct(); // $this->load->model('Chat_model');, ошибка исчезла.

Это мой Chat_model:

<?php 

class Chat_model extends CI_Controller { 

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

    public function addChatMessage($chat_id, $student_id, $bericht) { 

     $query = "INSERT INTO tbl_chatberichten (chat_id, student_id, bericht) VALUES (?,?,?)"; 
     $this->db->query($query, array($chat_id, $student_id, $bericht)); 

    } 

} 
+0

Хорошо, тогда ваша проблема в модели правильная? Не могли бы вы показать нам код, который у вас там? Вы построили родительский класс модели? – Jordy

+0

Я добавил его в свой вопрос – thais

+0

Не могли бы вы использовать '__construct()' вместо 'Chat_model()'? Это рекомендуется Codeigniter, и, возможно, это дает проблемы. – Jordy

ответ

0

Изменение конфигурации вашей библиотеки нагрузки в application/config/autoload.php файл

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

В application/config/config.php установлен ключ шифрования (любой ключ у, как)

$config['encryption_key'] = 'thu23456789#[n,'; 
+0

Я уже получил это. – thais

+0

это ключ, который у меня есть: $ config ['encryption_key'] = '23KJ31HD0SFKJ3'; – thais

+0

ya этот ключ хороший. –

0

Добавьте это вместо своего конструктора контроллера чата

public function __construct() { 

    parent::__construct(); 
    $this->load->library('session'); 
    $this->load->model('Chat_model'); 
} 

Это загружает библиотеку сеансов на ваш контроллер, чтобы вы могли использовать методы.

+0

не в вашей модели загрузите его в контроллер –

10
class Chat_model extends CI_Controller 

должен быть

class Chat_model extends CI_Model 
1

Добавить изменения в библиотеку конфигураций в приложение/Config/autoload.php файл

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

и в приложении/Config/config.php установить шифрование (любая клавиша u like)

$config['encryption_key'] = 'thu23456789#[n,'; 

Если вы все еще получаете ту же ошибку, то скопируйте System/библиотека/Session/session.php к системе/библиотека/папки, то она должна работать

1

Мое решение: Предисловие: Если вы не» t используйте крючки, это не будет для вас решением.

У меня была эта же проблема после обновления до версии 3.0.6, и я определенно правильно настроил все, так как это уже существующий сайт, обновляемый до версии v3 +. Моя проблема сводилась к крючкам, которые я загрузил «предварительный контроллер». Мои крючки работали с v 2.0.X CodeIgniter, но не с v3 +.

Если вы загружаете крючки перед загрузкой класса сеанса, и ваш крючок имеет зависимость от класса сеанса, который может быть вашим преступником. Попытайтесь изменить любые крючки перед контроллером на пост-контроллер или полностью закомментируйте их, чтобы узнать, устраняет ли это проблему. Все это находится в приложении/config/hooks.php.

0

Модель удлиняет CI_Model Not CI_Controller класс Chat_model расширяет CI_Model { ............. }

-1

Измените конфигурацию библиотеки в файле/конфигурации/autoload.php приложения

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

Установите ключ шифрования для applicatiion в приложении/Config/config.php

$config['encryption_key'] = 'sdjfkdjkfj'; 

системы Copy /libararies/Session/Session.php для приложения/библиотек/ Переименовать приложение/библиотеки/Session.php на CI_Session.php

Теперь объект CI_Session будет доступен через строку ниже

$this->ci_session 
5

Если вы используете CodeIgniter Modular Extensions HMVC эта ошибка может возникнуть, если вы забыли изменить свой класс, чтобы продлить MX_Controller вместо CI_Controller

Так что в вашем случае вы начать свой класс с:

class Chat extends MX_Controller {} 

Вместо:

class Chat extends CI_Controller {} 

Надеется, что это поможет кому-то, кто работает в том же номер

0

В моем случае имя библиотеки и класс контроллера имя же мое имя т.е. класса контроллера был Ajaxer, а также мое имя библиотеки классов было Ajaxer. Я изменил имя класса библиотеки на Ajaxer_lib и решил проблему.

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