|
作者: tzangms
先来介绍一下 CodeIgniter 的基本架构好了, 所以先来说明一下 CI 的页面是怎么做的。由于使用 MVC 架构, 所以最主要的就是 Controller, 程式透过 Controller 来呼叫 Model 存取资料库, 然后在指定 View 输出, 这样一来, Controller 就可以变得很简单。以制作 Blog 为例, Blog 的首页通常都会显示最新的 10 篇文章, 就以这个简单的范例来说明。不过在这里先只讨论 Controller 部份。
基本上, 每个 Controller 都是一个 Class, 在每个 Class 里面的 function 都是一个页面, 嗯, 这个概念很重要! 先来看看下面这一段, 应该就会比较清楚。
PHP复制代码 <?php
class Blog extends Controller{
function index(){
$this->load->model('blog_model');
$data = $this->blog_model->get_lastest_entries();
$this->load->view('blog', $data);
}
function post($id){
echo "这里是第 $id 篇文章";
}
}
?> 复制代码
在上面这段程式码, 可以看到是一个叫做 Blog 的 Class, 里面包含了 index 以及 post 两个 function。先来说明比较简单的 post 好了, 在先前有提到, 在 Class 中的 function 其实就是一个页面, 不像以往, 一个 php 档案就是一个页面。
接着来看看要如何存取 post 这个页面, 首先看到下面这个网址
http://domain/blog/post/26
这个网址在 domain 后面的部份, 一开始接的是 “blog”, 没错, 指的就是刚才上面写的 Blog Class, 接着是 “post” 就是在 Class 中看到的 post function, 再后面的 “26〃 就是要传给 post function 的 $id 变数, 也就是第 26 篇文章, 所以只要输入上面的网址, 就可以执行 Blog class 中的 post function, 而输出的结果就跟程式中看到的一样, 会直接输出一行文字, 如下:
这里是第 26 篇文章
看到这边大概就知道 CI 的 Controller 是怎么运作的吧? 好, 接着再来看看 index 这个 function, 存取 index 页面的网址如下
http://domain/blog/index
或更简短
http://domain/blog
只要输入上面这个网址就会显示出 index 这个 function 所产生的页面, 也就是显示最新的 10 篇 blog 文章。另外, 由于 index 是 CI 预设的首页, 所以存取这个页面的网址可以比 post 更简短, 不过这个 index function 未免也太简洁了吧!? 没错, 使用 CI 就是那么简洁
接下来来说明一下 index 里的程式码, 可以看到 index function 里总共只有 3 行, 先来看看第一行:
$this->load->model('blog_model');
在这里大家先知道, 这里是在载入一个叫做 blog_model 的 Model, 而 Model 主要的工作就是在存取资料库。接下来第二行如下:
$data = $this->blog_model->get_lastest_entries();
在这里就先想像一下 blog_model 中, 已经写好一个叫做 get_latest_entries 的 function, 会取出最新的 10 篇文章然后 return。而在上面可以看到, 最后会将取出的资料传给 $data 这个变数, 接着在最后一行, 将 $data 一起输出给 View, 这样一来就完成了 Blog 首页啦!! 当然 View 的部份也就不先说明了。不过还是列一下如和载入要显示的 View, 并先前透过 get_latest_entries 所取出的资料一起透过 View 输出。
$this->load->view('blog', $data);
基本上 Controller 就是长得这样, 在一个 Controller (Class) 中包含许多页面(function), 这么一来, 把相关的页面写在同一支 Controller 中, 是不是比较好维护呢? 另外使用 MVC 架构, Controller 看起来也会简洁许多。 |
评分
-
查看全部评分
|