CodeIgniter 的MVC 入门
CodeIgniter 是基于 MVC 的一套 PHP 快速开发工具包。
MVC 是一种将应用程序的逻辑层和表现层进行分离的方法。
(1) 模型(model) 代表你的数据结构。通常来说,你的模型类将包含取出、插入、更新你的数据库资料这些功能。 通俗来说,关于数据库的操作都写在这里。
(2) 视图(view) 是展示给用户的信息。 一个视图通常是一个网页,但是在 CodeIgniter 中, 一个视图也可以是一个页面片段,如头部、顶部。它还可以是一个 RSS 页面,或其他任一页面。我们平时用的模板,也就是view了。
(3) 控制器(controller) 是一个中介,联接视图和模型,以及其他任何处理 HTTP 请求和产生网页的资源。可以理解为控制中心,平时的编码都会在这里实现。
打开 system/application 你就可以看到以下三个文件夹:controllers(控制器),views(视图),models(模型)。
在 system/application/controllers 新建一个 blog.php 文件
<?php
class Blog extends Controller
{
function index()
{
echo "come blog";
}
}
?>
Blog 扩展 Controller 类。
问题:类函数为什么要为index()?
回答:index()类函数是默认执行的。
问题:如何指定自己的类函数?
回答:http://yourdomain/codeigniter/index.php/blog/ 这个地址是没有指定的
而如果是 http://yourdomain/codeigniter/index.php/blog/comment/ 这里表示指定了 comment() 类函数我们就可以这样写了:
<?php
class Blog extends Controller{
function index(){
echo "come blog";
}
function comment(){
echo "blog comment!";
}
}
?>
那么这里页面显示的结果就是 blog comment 了
问题:如何带参数,可以带几个参数!
回答:首先说明的是可以带N个参数例如
<?php
class Blog extends Controller{
function index(){
echo "come blog";
}
function comment($id,$cid,$vid){
echo "blog comment!{$id},{$cid},{$vid}";
}
}
?>
用 http://yourdomain/codeigniter/index.php/blog/comment/1/12/123 地址访问那么结果就显示
blog comment 1,23,123
就这么简单就可以完成一个带参输出
有些同志问了,如果要显示在我设置的前台页面里呢?该如何做?
别急等我慢慢道来。
$this->load->view('blog');
这句话就是调用了 system/application/views/blog.php 模板文件了
以下是控制器中传数据到视图页面
例如控制器文件
<?php
class Blog extends Controller{
function index(){
$data = array('title' => '欢迎进入 http://codeigniter.org.cn',
'heading' => '欢迎',
'message' => 'http://codeigniter.org.cn');
$this->load->view('blog', $data);//这里blog是视图名字不需要写扩展名,$this->load->view('folder/blog', $data)这样是在 folder 文件夹里面的blog.php文件 }
}
?>
视图文件
<html>
<head>
<title><?=$title?></title>
<head>
<body>
你好,<?=$heading?>进入<?=$message?>
</body>
</html>
MVC 是一种将应用程序的逻辑层和表现层进行分离的方法。
(1) 模型(model) 代表你的数据结构。通常来说,你的模型类将包含取出、插入、更新你的数据库资料这些功能。 通俗来说,关于数据库的操作都写在这里。
(2) 视图(view) 是展示给用户的信息。 一个视图通常是一个网页,但是在 CodeIgniter 中, 一个视图也可以是一个页面片段,如头部、顶部。它还可以是一个 RSS 页面,或其他任一页面。我们平时用的模板,也就是view了。
(3) 控制器(controller) 是一个中介,联接视图和模型,以及其他任何处理 HTTP 请求和产生网页的资源。可以理解为控制中心,平时的编码都会在这里实现。
打开 system/application 你就可以看到以下三个文件夹:controllers(控制器),views(视图),models(模型)。
在 system/application/controllers 新建一个 blog.php 文件
<?php
class Blog extends Controller
{
function index()
{
echo "come blog";
}
}
?>
Blog 扩展 Controller 类。
问题:类函数为什么要为index()?
回答:index()类函数是默认执行的。
问题:如何指定自己的类函数?
回答:http://yourdomain/codeigniter/index.php/blog/ 这个地址是没有指定的
而如果是 http://yourdomain/codeigniter/index.php/blog/comment/ 这里表示指定了 comment() 类函数我们就可以这样写了:
<?php
class Blog extends Controller{
function index(){
echo "come blog";
}
function comment(){
echo "blog comment!";
}
}
?>
那么这里页面显示的结果就是 blog comment 了
问题:如何带参数,可以带几个参数!
回答:首先说明的是可以带N个参数例如
<?php
class Blog extends Controller{
function index(){
echo "come blog";
}
function comment($id,$cid,$vid){
echo "blog comment!{$id},{$cid},{$vid}";
}
}
?>
用 http://yourdomain/codeigniter/index.php/blog/comment/1/12/123 地址访问那么结果就显示
blog comment 1,23,123
就这么简单就可以完成一个带参输出
有些同志问了,如果要显示在我设置的前台页面里呢?该如何做?
别急等我慢慢道来。
$this->load->view('blog');
这句话就是调用了 system/application/views/blog.php 模板文件了
以下是控制器中传数据到视图页面
例如控制器文件
<?php
class Blog extends Controller{
function index(){
$data = array('title' => '欢迎进入 http://codeigniter.org.cn',
'heading' => '欢迎',
'message' => 'http://codeigniter.org.cn');
$this->load->view('blog', $data);//这里blog是视图名字不需要写扩展名,$this->load->view('folder/blog', $data)这样是在 folder 文件夹里面的blog.php文件 }
}
?>
视图文件
<html>
<head>
<title><?=$title?></title>
<head>
<body>
你好,<?=$heading?>进入<?=$message?>
</body>
</html>