Nehmen wir an meinem Controller Book , ich habe viele Methoden, wie
get_book();
read_book();
remove_book();
Keine Methoden in der Klasse können verwendet werden, ohne dass der Benutzer angemeldet ist, und ich kann die user_id
aus der Sitzung abrufen.
Meine Frage ist, Was ist / sind die besten Möglichkeiten, um zu überprüfen, ob die user_id
-Sitzung gesetzt ist, so dass ich die Methoden verwenden kann?
Im Moment denke ich darüber nach, eine is_logged_in()
-Methode zu erstellen und sie für jede Methode mit einer if-else-Anweisung wie
Ist es nicht lang und langweilig? Gibt es einen ultimativen Weg, dies zu erreichen?
Ich lese den Link
Codeigniter-Prüfung für Benutzersitzung in jedem Controller
Aber es scheint, dass ich den is_logged_in
Check immer noch bei jeder Methode anwenden muss.
Danke, dass Sie mir geholfen haben!
Erstellen Sie eine Datei namens MY_controller.php
(das Präfix kann in der Konfigurationsdatei bearbeitet werden) in /application/core
:
Wenn Sie dann einen neuen Controller erstellen, entscheiden Sie, welchen Zugriff er benötigt
%Vor% Dadurch wird die Code-Duplizierung stark reduziert, denn wenn Sie einen anderen Mitgliedscontroller als Book
benötigen, können Sie einfach den Member_Controller
erweitern. Anstatt die Prüfungen in allen zu machen.
Das musst du nicht unbedingt tun. Setzen Sie einfach den Login-Prüfcode in den Konstruktor und Sie sind fertig!
%Vor%Sie können die Methode im Konstruktor des Controllers verwenden, wie:
%Vor%Tags und Links session codeigniter