Wie kann ich die Sitzung in einer Bibliothek in CodeIgniter verwenden?

8

Ich möchte überprüfen, ob der Benutzer bei CodeIgniter angemeldet ist, indem ich meine Bibliothek im Konstruktor des Controllers verwende.

Das ist meine Bibliothek:

%Vor%

Und das ist mein Controller:

%Vor%

Aber ich bekomme diese Fehlermeldung:

%Vor%

Wie kann ich die Sitzung in einer Bibliothek in CodeIgniter verwenden?

    
Chandara Sam 10.09.2012, 02:13
quelle

3 Antworten

28

Wenn Sie auf eine eigene CodeIgniter-Bibliothek zugreifen möchten, müssen Sie get_instance() aufrufen. Dies liegt daran, dass $this an Ihre aktuelle Bibliothek und nicht an das CodeIgniter-Objekt gebunden ist.

%Vor%

Siehe Erstellen von Bibliotheken CodeIgniter-Dokumentation. Insbesondere der Inhalt unter Verwenden von CodeIgniter-Ressourcen in Ihrer Bibliothek

Dies setzt voraus, dass Sie die Sitzungsbibliothek in config/autoload.php automatisch laden. Wenn nicht, müssen Sie auch $CI->load->library("session"); nach $CI Instanziierung hinzufügen.

WICHTIG: =& ist kein Tippfehler. Es wird als Referenz übergeben, um Speicher zu sparen.

    
Jordan Arseno 10.09.2012, 02:19
quelle
0

Sie sollten einfach zu application / autoload.php gehen und Ihr Autoload-Paket hinzufügen, das ungefähr so ​​aussehen sollte: $autoload['packages'] = array('database','form_validation','session','email');

Sie können sehen, dass es ein Sitzungspaket gibt, das ich in meinen Paketen hinzugefügt habe. Nun zu Ihrem Konstruktor kommend, sollten Sie dieses Paket laden, indem Sie folgendes hinzufügen: $this->load->library("session");

    
jencko 29.03.2017 06:37
quelle
0

Session und jede andere lib / helper, etc erweitert von CI_Controller / CI_Model / etc ... Wenn Sie versuchen, $this->whatever für eine Bibliothek zu verwenden, die von keinem dieser CI-Module ausgeht, erhalten Sie den Fehler. Wie Jordan sagt, können Sie get_instance verwenden.

    
Italo Hernández 14.01.2018 15:06
quelle

Tags und Links