1. MVC
CodeIgniter adopts the MVC architecture: control layer, model layer and view layer.
Corresponding to the folder under Application (Figure 1):
All new files end with .php
The view layer view folder is placed into the HTML template
The model layer model stores the code for database operations
The control layer controllers store The code for logical judgment obtains data from the model layer and then inputs it to the view layer and sends it to the user.
Figure 1
Function:
1. The template adds an input form
2. The controller adds code for receiving form data and performs simple verification of user input.
3. Output the title, text, and release time above the form.
Knowledge points used: CI helper class (url) and input class (input),
and CI ActiveRecord and passing values to templates.
2. Initial configuration
1. Link to the database
Modify the database configuration: /application/config/database.php
'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'test', 'dbdriver' => 'mysqli', 'dbprefix' => 'ts_',
2. Modify the default route
The CI framework uses a single file entry method, which must be passed by default index.php to access the control layer. For example, there is a class named test under the controllers folder, and test has a function called home.
The access URL is: http://www.example.com/index.php/test/home
Three. Output page
1. Directly output the HTML template
Create two new files located in the controllers folder and views folder
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>
Open an address similar to the following in the browser: http:// test.com/index.php/test/home
2. Insert database entry
Create database table ts_news
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); }
The body of the Home template is modified to:
<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>
Refresh to view the effect:
The above introduces the first part of the CodeIgniter introductory tutorial: Information Release, including aspects of the content. I hope it will be helpful to friends who are interested in PHP tutorials.