Home >Backend Development >PHP Tutorial >CodeIgniter introductory tutorial Part 1: Information release, ci_PHP tutorial

CodeIgniter introductory tutorial Part 1: Information release, ci_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 09:45:02843browse

CodeIgniter introductory tutorial part one: information release, ci

1. MVC

CodeIgniter adopts the MVC architecture: control layer, model layer and view layer.

Corresponds to the folder under Application (Figure 1):

All new files end with .php

Place the view layer view folder into the HTML template

The model layer model stores the code for database operations

The control layer controllers stores the code for logical judgment. It obtains data from the model layer and then inputs it to the view layer and sends it to the user.

CodeIgniter introductory tutorial Part 1: Information release, ci_PHP tutorial

Figure 1

Function:

1. Template adds input form

2. The controller adds code to receive form data and perform 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 database

Modify 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 adopts a single file entry method, and the control layer must be accessed through index.php by default. 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

3. Output page

1. Directly output HTML template

Create two new files located in the controllers folder and views folder

CodeIgniter introductory tutorial Part 1: Information release, ci_PHP tutorial

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 your browser: http://test.com/index.php/test/home

CodeIgniter introductory tutorial Part 1: Information release, ci_PHP tutorial

2. Insert database entry

Create database table ts_news

CodeIgniter introductory tutorial Part 1: Information release, ci_PHP tutorial

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" id="" 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" id="" cols="30" rows="10"></textarea>

<br>

<input type="submit" value="提交" >

</form>

</body>

 

 

Refresh to see the effect:

CodeIgniter introductory tutorial Part 1: Information release, ci_PHP tutorial

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1043451.htmlTechArticleCodeIgniter introductory tutorial Part 1: Information release, ci 1. MVC CodeIgniter adopts the MVC architecture: control layer, model layer and view layer. Corresponding to the folder under Application (Figure 1):...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn