ホームページ > バックエンド開発 > PHPチュートリアル > CodeIgniter 入門チュートリアル 第 1 部: 情報公開

CodeIgniter 入門チュートリアル 第 1 部: 情報公開

WBOY
リリース: 2016-08-10 08:48:40
オリジナル
983 人が閲覧しました

1. MVC

CodeIgniter は、コントロール層、モデル層、ビュー層の MVC アーキテクチャを採用しています。

アプリケーションの下のフォルダーに対応します (図 1):

すべての新しいファイルは .php で終わります

ビュー レイヤーのビュー フォルダーは HTML テンプレートに配置されます

モデル レイヤー モデルはデータベース操作のコードを保存します

コントロール層 コントローラー ストア 論理判定を行うコードは、モデル層からデータを取得し、ビュー層に入力してユーザーに送信します。

CodeIgniter 入門チュートリアル 第 1 部: 情報公開

図 1

機能:

1. テンプレートは入力フォームを追加します

2. コントローラーはフォーム データを受信するためのコードを追加し、ユーザー入力の簡単な検証を実行します。

3. フォームの上にタイトル、テキスト、リリース時間を出力します。

使用する知識ポイント: CI ヘルパー クラス (URL) と入力クラス (input)、

と CI ActiveRecord、およびテンプレートへの値の受け渡し。

2. 初期構成

1. データベースへのリンク

データベース構成を変更します: /application/config/database.php

  'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'test',
    'dbdriver' => 'mysqli',
    'dbprefix' => 'ts_',
ログイン後にコピー

2. デフォルトルートを変更します

CI フレームワークは単一のファイルエントリを使用しますメソッド。コントロール層にアクセスするには、デフォルトでindex.phpを渡す必要があります。例えば、controllersフォルダの下にtestというクラスがあり、testにはhomeという関数があります

アクセスURLは http://www.example.com/index.php/test/home

の3つです。出力ページ

1. HTML テンプレートを直接出力します

コントローラー フォルダーとビュー フォルダーに 2 つの新しいファイルを作成します

CodeIgniter 入門チュートリアル 第 1 部: 情報公開

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>
ログイン後にコピー

ブラウザで次のようなアドレスを開きます: http :// test.com/index.php/test/home

CodeIgniter 入門チュートリアル 第 1 部: 情報公開

2. データベースエントリを挿入します

データベーステーブルを作成します ts_news

CodeIgniter 入門チュートリアル 第 1 部: 情報公開

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);

    }
ログイン後にコピー

ホームテンプレートの本文は次のとおりです。に変更されました:

<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>
ログイン後にコピー

効果を確認するには更新してください:

CodeIgniter 入門チュートリアル 第 1 部: 情報公開

以上、CodeIgniter 入門チュートリアルの前半部分「情報公開」を内容を含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート