1. MVC
CodeIgniter übernimmt die MVC-Architektur: Kontrollschicht, Modellschicht und Ansichtsschicht.
Entspricht dem Ordner unter Anwendung (Abbildung 1):
Alle neuen Dateien enden mit .php
Der View-Layer-Ansichtsordner wird in der HTML-Vorlage platziert
Das Modell der Modellschicht speichert den Code für Datenbankoperationen
Die Steuerungsschicht speichert den Code für die logische Beurteilung. Sie erhält Daten von der Modellschicht, gibt sie dann in die Ansichtsschicht ein und sendet sie an die Benutzer.
Abbildung 1
Funktion:
1. Die Vorlage fügt ein Eingabeformular hinzu.
2 einen Empfangsformularcode für die Daten und führen eine einfache Validierung der Benutzereingaben durch.
3. Geben Sie den Titel, den Text und die Veröffentlichungszeit über dem Formular aus.
Verwendete Wissenspunkte: CI-Hilfsklasse (URL) und Eingabeklasse (Eingabe),
und CI ActiveRecord und Übergabe von Werten an Vorlagen.
2. Erstkonfiguration
1. Link zur Datenbank
Datenbankkonfiguration ändern:/application/config/database.php
'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'test', 'dbdriver' => 'mysqli', 'dbprefix' => 'ts_',
2. Ändern Sie die Standardroute
Das CI-Framework verwendet eine einzelne Dateieingabemethode und der Zugriff auf die Steuerungsebene muss standardmäßig über index.php erfolgen. Beispielsweise gibt es eine Klasse namens test im Controller-Ordner und test hat eine Funktion namens home
Die Zugriffs-URL lautet: http://www.example.com/index.php/test/home
3. Ausgabeseite
1. Geben Sie die HTML-Vorlage direkt aus
Erstellen Sie zwei neue Dateien im Controller-Ordner und im Ansichtsordner
Test.php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Test extends CI_Controller { public function home() { $this->load->view('home'); } } home.php <?php defined('BASEPATH') OR exit('No direct script access allowed'); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Home</title> </head> <body> <h1>这是我们的主页</h1> </body> </html>
Öffnen Sie in Ihrem Browser eine Adresse ähnlich der folgenden: http://test.com/index.php/test/home
2. Datenbankeintrag einfügen
Datenbanktabelle ts_news erstellen
Test.php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Test extends CI_Controller { public function __construct() { parent::__construct(); $this->load->helper('url'); $this->load->model('news_model'); } public function home() { $this->load->view('home'); } public function add_news(){ $title = $this->input->get('title',TRUE); $content = $this->input->get('content'); if ( (strlen($title) < 20 ) or (strlen($content) < 20 ) ){ echo '标题或正文内容过短'; return false; } $arr = array( 'id' => '', 'title' => $title, 'content' => $content, 'update_time' => time(), 'create_time' => time() ); $check = $this->news_model->insert($arr,'news'); if ($check) { redirect('test/home'); } else { echo '提交失败'; } } } home.php <?php defined('BASEPATH') OR exit('No direct script access allowed'); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Home</title> </head> <body> <h1>这是我们的主页</h1> <hr> <form action="<?php echo site_url('test/add_news'); ?>"> <label for="title">标题</label> <input type="text" name="title" value=""> <br> <label for="content">正文</label> <textarea name="content" cols="30" rows="10"></textarea> <br> <input type="submit" value="提交" > </form> </body> </html> News_model.php <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class News_model extends CI_Model { public function __construct() { parent::__construct(); $this->load->database(); } public function insert($arr,$table) { $this->db->insert($table, $arr); if ($this->db->affected_rows() > 0) { return $this->db->insert_id(); } else { return FALSE; } } } 412ded80-4884-4a2f-ae37-6ba69cdc4278 493498ee-0f5c-4676-9cec-38e5a3f3e6fd 3. 查询数据库并输出 News_model.php增加 public function get_all($table) { $this->db->select('*'); $query = $this->db->get($table); $query = $query->result_array(); return $query; } Test.php 的 home修改为: public function home() { $news = $this->news_model->get_all('news'); $data['news'] = $news; $this->load->view('home',$data); }
Der Hauptteil der Home-Vorlage wird wie folgt geändert:
<body> <h1>这是我们的主页</h1> <?php foreach ($news as $key => $value) { echo '<div> <h3>'.$value['title'].'</h3> <span>发布时间:'.date('Y-m-d H:i:s',$value['create_time']).'</span> <p>'.$value['content'].'</p> </div>'; } ?> <hr> <form action="<?php echo site_url('test/add_news'); ?>"> <label for="title">标题</label> <input type="text" name="title" value=""> <br> <label for="content">正文</label> <textarea name="content" cols="30" rows="10"></textarea> <br> <input type="submit" value="提交" > </form> </body>
Aktualisieren, um den Effekt anzuzeigen:
Das Obige stellt den ersten Teil des CodeIgniter-Einführungs-Tutorials vor: Informationsveröffentlichung, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.