Ich muss viele Arrays auf unterschiedliche Weise schleifen und auf einer Seite anzeigen. Die Arrays werden von einer Modulklasse generiert. Ich weiß, dass es besser ist, Funktionen nicht in 'Ansichten' aufzunehmen, und ich möchte wissen, wo die Funktionsdatei eingefügt werden soll.
Ich weiß, dass ich die Helfer "erweitern" kann, aber ich möchte keinen Helfer erweitern. Ich möchte mit meinen Schleifenfunktionen eine Art Helfer erstellen. Nennen wir es loops_helper.php
php
codeigniter
codeigniter-helpers
Jonathan
quelle
quelle
Antworten:
Ein CodeIgniter-Helfer ist eine PHP-Datei mit mehreren Funktionen. Es ist keine Klasse
Erstellen Sie eine Datei und fügen Sie den folgenden Code ein.
Speichern Sie dies in Anwendung / Helfer / . Wir werden es "new_helper.php" nennen.
Die erste Zeile stellt sicher, dass die Datei nicht eingeschlossen und von außerhalb des CodeIgniter-Bereichs ausgeführt werden kann. Alles danach ist selbsterklärend.
Den Helfer benutzen
Dies kann in Ihrem Controller , Modell oder Ihrer Ansicht sein (nicht vorzuziehen).
Wenn Sie diesen Helper an vielen Orten verwenden, können Sie ihn automatisch laden lassen, indem Sie ihn zur Autoload-Konfigurationsdatei hinzufügen, d
<your-web-app>\application\config\autoload.php
. H.-Mathew
quelle
$this
als Eigenschaft festlegen ... Alles, wenn Sie möchten.cool_helper
). Wenn Sie dies vergessen und manuell aufrufen,$this->load->helper('cool_helper')
nachdem er automatisch geladen wurde, erhalten Sie einen "bereits definierten" PHP-Fehler oder etwas anderes. Dies verhindert, dass derselbe Code zweimalinclude_once()
geladen wird (es ist so etwas wie die PHP-Funktion, aber für CodeIgniter-Helfer, um Probleme zu vermeiden). Grundsätzlich ein wenig übersetzen: Wenn keine Funktion vorhanden ist, bedeutet dies, dass der Helfer zuvor nicht geladen wurde. Definieren wir es.Code, mit dem Sie die CI-Instanz im Helfer verwenden können:
quelle
Gut für mich funktioniert nur das Hinzufügen des Textes
"_helper"
nach in der PHP-Datei wie:Und um den Helfer automatisch in den Ordner aplication -> file autoload.php zu laden, fügen Sie dem Array-Helfer den Namen ohne "_helper" hinzu, wie:
Und damit kann ich alle Funktionen des Helfers nutzen
quelle
_helper
am Ende des Dateinamens benötigt wird.Um einen neuen Helfer zu erstellen, können Sie den Anweisungen von The Pixel Developer folgen. Mein Rat ist jedoch, keinen Helfer nur für die Logik zu erstellen, die für einen bestimmten Teil einer bestimmten Anwendung erforderlich ist. Verwenden Sie stattdessen diese Logik in der Steuerung, um die Arrays auf ihre endgültigen beabsichtigten Werte zu setzen. Sobald Sie das erhalten haben, übergeben Sie sie mit der Template Parser-Klasse an die Ansicht und (hoffentlich) können Sie die Ansicht mit einfachen Variablen oder Variablen-Tag-Paaren anstelle von Echos und Foreachs von allem, was wie PHP aussieht, sauber halten. dh:
anstatt
Ein weiterer Vorteil dieses Ansatzes besteht darin, dass Sie sich nicht um das Hinzufügen der CI-Instanz kümmern müssen, wie Sie es tun würden, wenn Sie benutzerdefinierte Helfer verwenden, um die gesamte Arbeit zu erledigen.
quelle
Erstellen Sie eine Datei mit dem Namen Ihres Helfers in / application / helpers und fügen Sie sie der Autoload-Konfigurationsdatei hinzu / laden Sie sie manuell.
Platzieren Sie beispielsweise eine Datei mit dem Namen user_helper.php in / application / helpers mit folgendem Inhalt:
Jetzt können Sie den Helper entweder über laden
$this->load->helper(‘user’);
oder zur Anwendung / config / autoload.php config hinzufügen .quelle
Definieren Sie einfach einen Helfer im Application Helper-Verzeichnis und rufen Sie dann von Ihrem Controller aus einfach den Funktionsnamen wie auf
im Controller laden Sie den Helfer
Ausgabe wird sein
quelle
Verwenden Sie die folgende Funktion, um ein Element aus Ihrer Konfigurationsdatei abzurufen:
$this->config->item('item name');
Dabei ist der Elementname der Array-Index $ config, den Sie abrufen möchten. Um beispielsweise Ihre Sprachauswahl abzurufen, gehen Sie wie folgt vor:$lang = $this->config->item('language');
Die Funktion gibt FALSE (boolean) zurück, wenn das Element, das Sie abrufen möchten, nicht vorhanden ist.Wenn Sie den zweiten Parameter der Funktion $ this-> config-> load verwenden, um Ihre Konfigurationselemente einem bestimmten Index zuzuweisen, können Sie ihn abrufen, indem Sie den Indexnamen im zweiten Parameter von $ this-> config- angeben. > Funktion item (). Beispiel:
// Lädt eine Konfigurationsdatei mit dem Namen blog_settings.php und weist sie einem Index mit dem Namen "blog_settings" zu.
// Ein Konfigurationselement mit dem Namen site_name abrufen, das im Array blog_settings enthalten ist
// Eine alternative Möglichkeit, dasselbe Element anzugeben:
$ site_name = $ blog_config ['site_name'];
quelle