2013年1月10日 星期四

Ci 範例介紹及MVC運行原理


CI框架式最簡單的MVC框架了,簡單的說下MVC吧!
M即模型models一般SQL的操作都在這裡
V即視圖views用來放html 檔案前端呈現的東西都是放在這裡處理 包含CSS 和 JS
C即控制器controllers,基本上,每個控制器都是一個class了


如果要在更簡單的看法就是
Model都在處理SQL的東西
Controllers都在處理PHP邏輯判斷的部分
View顧名思義就是呈現看的到的部分html,css,JS





<?php
 class Test extends Controller{
     function index(){
         $this->load->model('test_model');
         $data = $this->test_model->get_lastest_entries();
         $this->load->view('test', $data);
     }

     function post($id){
         echo "第 $id 位訪客";
     }
 }
 ?>


Test 的 Class, 裡面包含了 index 以及 post 兩個 function。
簡單的說控制器裡面的一個function就是一個頁面。
再看看訪問地址:http://localhost/test/post/100

這個網址在 localhost後面的部份, 一開始接的是 「test」, 沒錯,
指的就是剛才上面寫的 Test Class, 接著是 「post」 就是在 Class 中看到的 post function
再後面的 「26〃 就是要傳給 post function 的 $id 變數, 也就是第 26 位訪客, 即:只要輸入
上面的網址:就能顯示:

" 第 26 位訪客 "

因為index是ci框架的默認首頁:更簡單的首頁地址是:
http://localhost/test/index  或 http://localhost/test/

注意一下這裡網址結尾的 index 不是 index.php
而是function index 中的 index名稱
起初這裡也弄錯很久才知道
因為CI框架關係,所以網址後面的function名稱
會隱藏起來,在此範例中會打出來還有一個用處
如果要進行debug時候直接在網址打入function就可以判斷
出來的參數對不對

在看看下面:
$this->load->model('test_model');

在載入一個叫做 test_model 的 Model, Model 主要的工作就是在存取資料庫。
接下來第二行如下:
$data = $this->blog_model->get_lastest_entries();

在這裡就先想像一下 blog_model 中, 已經寫好一個叫做 get_latest_entries 的 function
會取出最新的 10 篇文章然後 return。
而在上面可以看到, 最後會將取出的資料傳給 $data 這個變數
接著在最後一行, 將 $data 一起輸出給 View,通過如下php實例:

$this->load->view('blog', $data);

就能夠顯示了,怎麼樣,ci框架是不是很簡單?
Share:

0 意見: