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?
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.
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.
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");
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.
Tags und Links php controller codeigniter