Heim >Backend-Entwicklung >PHP-Tutorial >CodeIgniter-Studiennotizen 3: Erweiterung von CI-Controllern und -Modellen
1. Erweitern Sie den Controller in CI
Manchmal ist es notwendig, einheitliche Vorgänge auf dem Controller in CI durchzuführen, wie z. B. Anmeldung und Berechtigungsüberprüfung. Dies kann durch Erweitern des CI-Controllers erreicht werden.
Um den CI-Controller zu erweitern, müssen Sie lediglich eine von der CI_Controller-Klasse geerbte MY_Controller-Klasse im Anwendungs-/Kernordner erstellen und dann die benötigte Logik in dieser Klasse implementieren.
Bezüglich des obigen Satzes gibt es zwei Punkte, die erklärt werden müssen:
1. Warum befindet es sich im Ordner application/core: weil sich die Basisklasse CI_Controller im System/Core befindet Ordner, der dem System entsprechen muss.
2. Warum ist das Präfix des erweiterten Controllers MY_? Kann es in ein anderes geändert werden? Dieses Präfix ist in application/config/config.php definiert:
<span>$config</span>['subclass_prefix'] = 'MY_';
Es müssen nur diese beiden Orte übereinstimmen.
2. Modell
Beispielanwendung/models/user_model.php:
<?<span>php </span><span>/*</span><span>* * User_model </span><span>*/</span><span>class</span> User_model <span>extends</span><span> CI_Model{ </span><span>//</span><span>return all users</span><span>public</span><span>function</span><span> getAll() { </span><span>$res</span> = <span>$this</span> -> db -> get('test'<span>); </span><span>return</span><span>$res</span> -><span> result(); } }</span>
Hinweis:
Die Der Dateiname besteht ausschließlich aus Kleinbuchstaben
2. Der erste Buchstabe des Klassennamens wird groß geschrieben
3. Die Attribute im Superobjekt können im Modell verwendet werden
4. Es wird empfohlen, _model als Suffix zu verwenden, um Konflikte mit anderen Klassennamen zu vermeiden.
Anwendungsbeispiel:
<span>public</span><span>function</span><span> index() { </span><span>//</span><span>load model</span><span>$this</span> -> load -> model('User_model'<span>); </span><span>$usermodel</span> = <span>$this</span> -> User_model -><span> getAll(); </span><span>//</span><span>别名</span><span>$this</span> -> load -> model('User_model', 'user'<span>); </span><span>$usermodel</span> = <span>$this</span> -> user -><span> getAll(); </span><span>var_dump</span>(<span>$usermodel</span><span>); }</span>
Das Modell wird hauptsächlich zur Standardisierung des Projekts verwendet Struktur.
Das Obige stellt den CodeIgniter-Studienhinweis 3 vor: Erweiterung des CI-Controllers und -Modells, einschließlich Aspekten des Inhalts. Ich hoffe, dass er für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.