亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

CI(CodeIgniter)框架入門教程——第二課 初始MVC

2019-11-15 01:27:22
字體:
來源:轉載
供稿:網友
CI(CodeIgniter)框架入門教程——第二課 初始MVC

本文轉載自:http://www.youarebug.com/forum.php?mod=viewthread&tid=105&page=1&extra=#pid142

目錄第一課 Hello World!第二課 初始MVC-->本帖第三課 URL及Ajax

今天的主要內容是,使用CodeIgniter框架完整的MVC內容來做一個簡單的計算器,通過這個計算器,讓大家能夠體會到我在第一節課中所介紹的標準的MVC框架與用戶交互的一個過程。下面,開始今天的課程。

首先,還是和昨天一樣,解壓下載到的CodeIgniter框架

這行代碼的作用就是配置默認的控制器,為了讓大家能夠更好的學習到CI框架,這里,我們將這行代碼修改為

$route['default_controller'] = "calculate";

接下來,我們創建屬于我們自己的calculate控制器,在controllers文件夾下,新建一個php文件,文件名是calculate.php,然后書寫里面的代碼

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/* * 計算控制器,類名首字母必須大寫,所有的控制器必須繼承自CI_Controller類 */class Calculate extends CI_Controller {        // 構造方法        function __construct() {                parent::__construct();        }                // 默認方法        function index() {                // 加載calculate_view視圖                $this->load->view('calculate_view');        }}/* End of file calculate.php *//* Location: ./application/controllers/calculate.php */

在上面的代碼中,我們可以注意到,我們的類名與文件名同名,但首字母是大寫的,這是CI的規則,必須這樣做,而且,所有的控制器都必須要繼承自CI_Controller類,另外,可以看到,我們在文件結束的地方只有兩行注釋,并沒有PHP的結束標簽“?>”,在這里不對此做過多解釋,只是CI推薦這樣寫,如果大家對這點感興趣,我會在后面的課程中講到。

在上面的控制器當中加載了一個視圖,但是這個視圖現在還沒有,沒關系,現在我們就來動手寫這個視圖,在views文件夾下新建一個php文件,文件名為calculate_view.php,打開文件,書寫具體的代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>網頁計算器</title><style type="text/CSS">#calculators {        margin: 10% auto;        width:430px;        border:1px solid #000;}</style></head><body><div id="calculators">        <form action="index.php/calculate/count" method="post">                <input type="text" name="num1" id="num1" />                <select name="Operate" id="operate">                        <option value="+">+</option>                        <option value="-">-</option>                        <option value="x">x</option>                        <option value="÷">÷</option>                </select>                <input type="text" name="num2" id="num2" />                <input type="submit" value="計算" />        </form></div></body></html>

在上面的表單中,我們的提交路徑指向的其實是calculate類中的一個方法,這個方法的名字就是count,關于CI框架路徑的規則,我將在下一講中詳細介紹。接下來,我們來書寫controller中對應的代碼,在calculate控制器中加入如下的函數:

function count() {        // 使用輸入類接收參數        $num1 = $this->input->post('num1');        $op = $this->input->post('operate');        $num2 = $this->input->post('num2');                if (is_numeric($num1) && is_numeric($num2)) {                // 如果兩個數輸入均為數字,則調用calculate_model模型下的count方法                $result = $this->calculate_model->count($num1, $num2, $op);        }}

我們看到在控制器的代碼中,調用了calculate_model模型下面的count方法,但是在調用模型之前,控制器必須先要加載函數,所以,需要在控制器的構造函數中,加入如下代碼:

// 加載計算模型$this->load->model('calculate_model');

接下來,我們就按照控制器里面的調用,創建我們的calculate_model模型和count方法,所有的模型都是放在models文件夾下的,所以,我們需要在models文件夾下創建一個名為calculate_model.php的文件,創建好后,我們來書寫model端的代碼:

<?php/** * 計算模型,類名首字母必須大寫,所有的模型必須繼承自CI_Model類 */class Calculate_model extends CI_Model {                function __construct() {                parent::__construct();        }                /*         * 計算函數         */        function count($num1, $num2, $op) {                if ($op == "+") {                        return $num1 + $num2;                }else if ($op == "-") {                        return $num1 - $num2;                }else if ($op == "x") {                        return $num1 * $num2;                }else if ($op == "÷" && $num2 != 0) {                        return $num1 / 1.0 / $num2;                 }else {                        return FALSE;                }        }}/* End of file calculate_model.php *//* Location: ./application/models/calculate_model.php */

現在,已經進行到了模型將計算結果返回給了控制器,還剩最后一步,就構成了一個標準的、完整的MVC框架執行過程,那就是控制器再次加載視圖來顯示計算結果。我們需要在views文件夾下創建一個視圖(PHP文件),取名為result_view.php,代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>網頁計算器</title><style type="text/css">#calculators {        margin: 10% auto;        width:430px;        border:1px solid #000;}</style></head><body><div id="calculators">        <?php        // 從控制器接收數據并對數據進行操作        if (is_numeric($num1) && is_numeric($num2) && $op && $result && $result != FALSE) {                echo $num1." ".$op." ".$num2." = ".$result."<br />";        }else {                echo "計算錯誤<br />";        }        ?>        <a href="/CI_02">返回首頁</a></div></body></html>

大家可以注意到,在這個視圖中,出現了PHP代碼,而且出現了一些變量,這些變量是哪來的呢?這就是今天要講到的另一個重點,給視圖添加動態數據。在視圖的使用中,可以通過控制器給視圖添加動態數據,這些數據在控制器里都是以數組鍵值對的形式定義的,在控制器加載視圖的同時,數據數組做為參數傳遞給視圖;在視圖中,我們只需要知道數據在數組中的鍵名就可以取到想要的數據。比如,在控制器里定義的數據數組是:

$data = array('num1' => 1, 'num2' => 2, 'op' => +, 'result' => 3);

那么在視圖中,只需要知道鍵名,就可以取得相對應的數據,比如:

echo $num1." ".$op." ".$num2." = ".$result."<br />";

寫好了用于顯示計算結果的視圖,也學會了怎樣給視圖添加動態數據,現在只需要稍微修改一下前面寫好的控制器的count函數,計算結果就可以顯示在result_view視圖上了,對count函數修改后的代碼如下:

function count() {        // 使用輸入類接收參數        $num1 = $this->input->post('num1');        $op = $this->input->post('operate');        $num2 = $this->input->post('num2');                if (is_numeric($num1) && is_numeric($num2)) {                // 如果兩個數輸入均為數字,則調用calculate_model模型下的count方法                $result = $this->calculate_model->count($num1, $num2, $op);                // 生成要傳給視圖的數據                $data = array('num1' => $num1, 'num2' => $num2, 'op' => $op, 'result' => $result);                // 加載視圖                $this->load->view('result_view', $data);        }}

可以看到,上面的代碼中,只是將用戶輸入的數字和操作符以及模型返回的計算結果放入data數組中,然后將數組做為加載視圖時的第二個參數,就可以實現在視圖中顯示計算結果??吹竭@里,恭喜你,你已經成功的學會了MVC框架的基本內容,其實一點都不難,在接下來的課程中,我將逐步講解CI框架中其他類庫和輔助函數的使用方法。

總結:今天學習了CI框架的MVC框架的基本內容,到此位置,MVC的基本功能已經實現,下一講的內容是URI以及使用ajax。第二課源代碼下載地址:http://www.youarebug.com/forum.php?mod=viewthread&tid=105&page=1&extra=#pid142


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国语对白做受69| 日韩免费观看高清| 亚洲激情 国产| 精品中文视频在线| 色无极亚洲影院| 亚洲一区二区三区在线免费观看| 97在线观看免费| 欧美亚洲在线播放| 日韩欧美在线免费| 亚洲欧美三级伦理| 国产视频一区在线| 日韩有码在线播放| 国产成人久久久精品一区| 国产精品91在线| 国产精品夜色7777狼人| 亚洲精品久久在线| 精品国产欧美一区二区三区成人| 97色在线播放视频| 久久视频在线播放| 久久国产精彩视频| 久久精品亚洲94久久精品| 欧美性猛交丰臀xxxxx网站| 亚洲小视频在线| 久久精品视频99| 久久久久久高潮国产精品视| 亚洲人成网站777色婷婷| 国产精品成人av性教育| 久久久亚洲影院| 欧美性高潮床叫视频| 久久亚洲精品视频| 成人福利在线观看| 国产精品1234| 亚洲成人网在线观看| 88国产精品欧美一区二区三区| 欧美成人精品一区| 欧洲成人午夜免费大片| 国产一区在线播放| 51午夜精品视频| 欧美另类高清videos| 国产999精品久久久影片官网| 在线精品视频视频中文字幕| 久久久亚洲欧洲日产国码aⅴ| 中文字幕欧美精品在线| 最近2019年好看中文字幕视频| 最近2019中文字幕大全第二页| 久久免费国产精品1| 国产成人拍精品视频午夜网站| 欧美黄色免费网站| 国产精品网站视频| 26uuu另类亚洲欧美日本一| 国内精品在线一区| 国产精品444| 97视频在线观看免费高清完整版在线观看| 国产一区二区三区高清在线观看| 中文综合在线观看| 爽爽爽爽爽爽爽成人免费观看| 丝袜美腿亚洲一区二区| 国产成人福利夜色影视| 91在线免费看网站| 亚洲美女免费精品视频在线观看| 欧美日韩在线视频一区二区| 自拍偷拍亚洲精品| 欧美精品久久久久久久久久| 上原亚衣av一区二区三区| 91在线免费观看网站| 国产精品盗摄久久久| 日韩欧美中文字幕在线观看| 在线观看日韩av| 亚洲视频一区二区| 亚洲日本成人女熟在线观看| 国产亚洲欧洲黄色| 亚洲xxxxx| 欧美一区二区三区免费观看| 在线电影中文日韩| 欧美一区二区大胆人体摄影专业网站| 久久久之久亚州精品露出| 日韩亚洲欧美中文在线| 国产精品揄拍500视频| 国模叶桐国产精品一区| 成人精品一区二区三区电影免费| 美乳少妇欧美精品| 精品国产1区2区| 国产成人精品视频在线| 国产v综合v亚洲欧美久久| 亚洲人成在线一二| 亚洲一二三在线| 在线看国产精品| 亚洲黄色免费三级| 欧美日韩一区免费| 成人免费大片黄在线播放| 热久久免费国产视频| 亚洲第一区在线观看| 亚洲一区二区日本| 欧美激情免费看| 欧美男插女视频| 国产亚洲精品久久久久动| 66m—66摸成人免费视频| 国产在线久久久| 欧美视频中文字幕在线| 亚洲欧美另类在线观看| 超碰日本道色综合久久综合| 久久久久免费精品国产| xvideos国产精品| 奇门遁甲1982国语版免费观看高清| 97碰碰碰免费色视频| 国产精品av在线播放| 亚洲国产精品中文| 97人人爽人人喊人人模波多| 日韩大陆欧美高清视频区| 欧美激情视频在线| 久久久久久久久电影| 国产精品三级网站| 正在播放欧美一区| 欧美丝袜美女中出在线| 久久精品成人欧美大片古装| 国产成人小视频在线观看| 91久久国产精品| 久久久久久久久久久久久久久久久久av| 91影视免费在线观看| 欧美精品九九久久| 欧美大秀在线观看| 欧美日韩加勒比精品一区| 美女性感视频久久久| 成人性教育视频在线观看| 91av网站在线播放| 国产做受高潮69| 亚洲美女精品久久| 欧美日韩xxxxx| 中文字幕视频一区二区在线有码| 亚洲色图偷窥自拍| 国产丝袜一区二区三区免费视频| 久久久www成人免费精品张筱雨| 久久综合伊人77777尤物| 福利一区视频在线观看| 亚洲永久免费观看| 欧美大尺度激情区在线播放| 欧美国产在线电影| 中文字幕av一区二区三区谷原希美| 久久精品视频亚洲| 自拍偷拍免费精品| 国产91精品久| 91免费在线视频网站| 欧美—级a级欧美特级ar全黄| 97免费中文视频在线观看| 欧美性色xo影院| 日韩av电影院| 在线播放国产一区二区三区| 亚洲色图偷窥自拍| 亚洲精品一区中文字幕乱码| 5566成人精品视频免费| 韩日欧美一区二区| 国产免费亚洲高清| 在线观看国产精品91| 欧美日韩另类视频| 国产日韩精品在线播放| 国产日本欧美一区二区三区| 久久久欧美一区二区| 精品亚洲国产成av人片传媒| 日韩av综合中文字幕| 精品国产91久久久久久| 一区二区三区美女xx视频| 亚洲一区美女视频在线观看免费| 国产精品男女猛烈高潮激情| 亚洲成人中文字幕|