2015-04-24 3 views
5

Der Browser:kann nicht die angegebene Klasse suchen: Session.php in Codeigniter

kann nicht die angegebene Klasse suchen: Session.php

Das ist mein Controller:

<?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); 
    } 
} 

Wenn ich mein Modell in parent::__construct(); // $this->load->model('Chat_model'); in Kommentar setze, ist der Fehler weg.

Das ist mein 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

Na dann ist dein Problem im Modell richtig? Kannst du uns den Code zeigen, den du dort bekommen hast? Haben Sie die Elternmodellklasse erstellt? – Jordy

+0

Ich habe es in meiner Frage – thais

+0

hinzugefügt Könnten Sie bitte '__construct()' anstelle von 'Chat_model()' verwenden? Es wird von Codeigniter empfohlen und vielleicht gibt es das Problem. – Jordy

Antwort

0

Ändern Sie Ihre Ladebibliothek Konfiguration in application/config/autoload.php Datei

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

In application/config/config.php den Verschlüsselungsschlüssel festgelegt (eine beliebige Taste u like)

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

Ich habe das schon .. – thais

+0

das ist der Schlüssel, den ich habe: $ config ['encryption_key'] = '23KJ31HD0SFKJ3'; – thais

+0

ya, dass der Schlüssel ist gut. –

0

Fügen Sie dies anstelle Ihres Chat-Controller-Konstruktors hinzu

public function __construct() { 

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

Dies lädt die Sitzungsbibliothek auf Ihrem Controller, so dass Sie die Methoden verwenden können.

+0

nicht in Ihrem Modell laden Sie es in Ihrem Controller –

10
class Chat_model extends CI_Controller 

sollte

class Chat_model extends CI_Model 
1

Änderungen Fügen Sie in Ihrer Bibliothek Konfigurationen in application/config/autoload.php Datei

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

und in application/config/config.php die Verschlüsselung Schlüssel (irgendein Schlüssel mögen Sie)

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

Wenn Sie noch gleichen Fehler kopieren System/Library/Session/Session.php zu System/Library/Ordner, dann funktionieren sollte

1

Meine Lösung: Vorwort: Wenn Sie don‘ t Haken verwenden, wird dies nicht die Lösung für Sie sein.

Ich hatte das gleiche Problem, nach dem Upgrade auf v3.0.6, und ich hatte definitiv alles richtig eingerichtet, da dies eine bestehende Website nur auf v3 + aktualisiert wird. Mein Problem lief auf Haken hinaus, die ich "Pre-Controller" geladen hatte. Meine Hooks funktionierten mit v 2.0.X von CodeIgniter, aber nicht mit v3 +.

Wenn Sie Hooks laden, bevor die Sitzungsklasse geladen ist, und Ihr Hook eine Abhängigkeit von der Sitzungsklasse hat, kann dies Ihr Täter sein. Versuchen Sie, alle Vor-Controller-Hooks zu Post-Controller zu ändern oder sie vollständig zu kommentieren, um zu sehen, ob das Ihr Problem behebt. Das ist alles in application/config/hooks.php.

0

Modell erweitert CI_Model nicht CI_Controller Klasse Chat_model erweitert CI_Model { ............. }

-1

ändern Sie bitte Ihre Bibliothekskonfigurationen in application/config/autoload.php Datei

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

die Verschlüsselungsschlüssel-Set für Ihre Applikation in application/config/config.php

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

System kopieren /libararies/Session/Session.php to application/libraries/ Benennen Sie application/libraries/Session.php in CI_Session.php um.

Nun CI_Session Objekt wird durch unterhalb der Linie

$this->ci_session 
5

zur Verfügung Wenn Sie Codeigniter verwenden Modular Extensions HMVC dieser Fehler kann auftreten, wenn Sie vergessen, Ihre Klasse zu ändern MX_Controller statt CI_Controller

So in Ihrem Fall zu verlängern würden Sie starten Sie Ihre Klasse mit:

class Chat extends MX_Controller {} 

Statt:

class Chat extends CI_Controller {} 

Hope this jemand, der in der gleichen Ausgabe läuft hilft

0

In meinem Fall der Name der Bibliothek und Controller Klassennamen gleichen d.h mein Controller Klassennamen Ajaxer und auch der Name meiner Bibliothek Klasse Ajaxer war, wurde. Ich habe den Namen meiner Bibliotheksklasse in Ajaxer_lib geändert und das Problem wurde behoben.

Verwandte Themen