2010-01-04 5 views
11

Ich versuche, Authentifizierung für meine PHP-Website zu erstellen. Ich benutze das Codeigniterrahmenwerk. Ich werde die Sitzung auf allen Seiten meiner Website validieren müssen. Um die Code-Wiederholung zu vermeiden, habe ich vor, dies in einer Hilfsfunktion zu tun. Jetzt, da meine Benutzeranmeldeinformationen in meiner Datenbank sind, möchte ich auf das Modell zugreifen, um die Datenbank von der Helper Funktion abzufragen. In einer Controller-Klasse hätte ich dies unter VerwendungWie Zugriff auf Modell Datenbank von einer Hilfsfunktion abzufragen?

$this->load->model('user_model'); 

getan haben Bitte lassen Sie mich wissen, das Äquivalent in einer Hilfsdatei. Jede Art von Vorschlag im Ansatz wird ebenfalls geschätzt. Danke im Voraus.

Antwort

20

Sie werden diese nicht $ in der Lage zu verwenden, um Ihre CI-Instanz in einem Helfer zugreifen, aber CI hat einen Weg, dies zu tun -

Zuerst müssen Sie einen Verweis auf Ihr CI Beispiel:

$CI =& get_instance(); 

Dann, wenn Sie das Modell laden möchten, können Sie es wie so tun:

$CI->load->model('model_name'); 

Und schließlich, wie dies jede Funktion in Ihrem Modell nennen:

$CI->model_name->function_name(); 

Verwenden Sie im Grunde $ CI anstelle von $ this. Ich hoffe, das hilft.

1

Es ist nicht so viel Code-Wiederholung. Ich würde diesen Ansatz vorschlagen:

function __construct() 
{ 
    parent::Controller(); 

    if ($this->auth->is_logged_in() !== TRUE) // "auth" is the authentication library 
    { 
     redirect('login'); 
    } 
} 
Verwandte Themen