Frage

ich mit CodeIgniter gerade begann vor ein paar Stunden, und ich auf einige Probleme habe kam. Ich versuche, eine Funktion aufzurufen, die in einem Controller namens admin.php zur Zeit ist. Ich versuche, dies von einem Helfer zuzugreifen. Wie würde ich tun, richtig das? Ich habe fast alles versucht, aber nichts scheint zu funktionieren, wie ich folgende Fehlermeldung ich empfangen:

Fatal error: Call to a member function login() on a non-object

Jede Hilfe zu diesem Thema wäre sehr willkommen

War es hilfreich?

Lösung

Ich bin mit jimyi. Ihre Helfer und Bibliotheksklassen sollten in einer Anwendung unabhängig von einem bestimmten Controller sein. Wenn Sie einen „Seitentitel“ Helfer haben, zum Beispiel, sollte es nicht auf ein bestimmtes Verhalten Ihres Admin-Controller ab. Was passiert, wenn Sie die Seite Helfer in einer anderen Anwendung, die nicht hat einen Admin-Controller verwenden wollten? Oder was, wenn Sie Änderungen an den Admin-Controller auf der Straße machen, jetzt müssen Sie sicherstellen, dass diese Änderungen nicht brechen Ihre Helfer.

Wenn Sie Ihre Hilfsfunktion eine bestimmte Bit von Daten benötigt, die der Admin-Controller verfügt, können Sie es in als Funktionsparameter von der Steuerung übergeben. Auf diese Weise der Helfer ist eine Abhängigkeit von der Steuerung als mit dem Controller im Gegensatz eine Abhängigkeit des Helfers zu sein.

Darüber hinaus bedeutet, dass Fehlermeldung, dass was auch immer, was Sie fordern, richtig ist nicht instanziiert worden. So machst du woanders vermutlich so etwas wie:

$this->load();

im Helfer. Doch in den Helfern,

$this
wird (daher die 'nicht Objekt' Fehler) nicht definiert. CodeIgniter bietet eine Möglichkeit, Modelle, Bibliotheken zu laden und Ansichten von außerhalb eines Controllers. Aber soweit ich weiß, ist es nicht zulassen, dass Sie dies für Controller tun. Das ist in Ordnung aber für die oben genannten Gründen. Muss ich vorsichtig sein, wenn Sie Abhängigkeiten einzuführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top