ci框架使用的是MVC,M是模型,主要存放和数据库相关的操作,比如向数据库写数据,从数据库中读取数据。V是视图,前端的文件都这里,是用户可以看到的,可以显示出来的东西。C是控制器,是整个框架比较核心的一部分,主要是连接模型和视图,将模型操作的数据给视图所使用,大部分的代码都在C中。
下面是MVC在ci中的位置,注意:前端在views中的代码也要使用.php后缀名。
以创建一个 简单新闻系统为例,来熟悉ci框架的基本操作。
- 加载静态内容:主要介绍控制器(Controllers), 视图(Views)和路由(Routing)的基础知识。
- 读取新闻条目:开始介绍模型(Models)的相关知识, 以及在模型中执行一些基本的数据库操作。
- 创建新闻条目:主要介绍在 CodeIgniter 中执行高级数据库操作,以及表单验证的相关知识。
加载静态条目
新建一个文件 application/controllers/Pages.php ,然后添加如下代码。
<?php
class Pages extends CI_Controller {
public function view($page = 'home')
{
}
}
这段代码的意思是,在controllers中创建了一个 Pages 类,并继承(extends表示继承,在controllers中的类必须继承 CI_Controller 类),有一个方法(实际上就是函数)view 并可接受一个 $page 参数。
现在,你已经创建了你的第一个方法,是时候创建一些基本的页面模板了,我们将 新建两个视图(页面模板)分别作为我们的页脚和页头。
新建页头文件 application/views/templates/header.php 并添加以下代码:
<html>
<head>
<title>CodeIgniter Tutorial</title>
</head>
<body>
<h1><?php echo $title; ?></h1>
上面这段代码可以看出,PHP是可以写在html里的,用<?php ...?>括住.
echo $title;
这句话的意思是显示从后端得到的$title,后面将从控制器中传送$title。
再新建个页脚文件 application/views/templates/footer.php ,然后添加以下代码:
<em>© 2015</em>
</body>
</html>
这样,一个简单的前端界面就设计好了,下一步是在控制器中添加逻辑。
你刚刚新建了一个控制器,里面有一个 view() 方法,这个方法接受一个参数 用于指定要加载的页面,静态页面模板位于 application/views/pages/ 目录。
在该目录中,再新建两个文件 home.php 和 about.php ,在每个文件里随便 写点东西然后保存它们。
为了加载这些页面,你需要先检查下请求的页面是否存在:
public function view($page = 'home')
{
if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php'))
{
show_404();
}
$data['title'] = ucfirst($page);
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
if判断请求的页面是否存在,当请求的页面存在时,将包括页面和页脚一起被加载并显示给用户,如果不存在, 会显示一个 "404 Page not found" 错误。file_exists() 是个原生的 PHP 函数,用于检查某个 文件是否存在,show_404() 是个 CodeIgniter 内置的函数,用来显示一个默认的 错误页面。
在页头文件中,$title 变量用来自定义页面的标题,它是在这个方法中赋值的, 但是注意的是并不是直接赋值给 title 变量,而是赋值给一个 $data 数组的 title 元素。(注意,ci中向前端传数据一般是将数据整合成一个数组,数组的下标是变量名,在前端界面直接使用变量名,所以控制器中 $data['title'] 的值,就等于视图中的 $title 的值。)
最后要做的是按顺序加载所需的视图,view() 方法的第二个参数用于向视图传递参数, $data 数组中的每一项将被赋值给一个变量,这个变量的名字就是数组的键值。
$this->load->view('pages/'.$page, $data);
中 ,表示显示pages/$page界面,”.“ 的作用是连接域名。
控制器现在开始工作了!在你的浏览器中输入 [your-site-url]index.php/pages/view 来查看你的页面。
在本地访问本地页面时,url的输入方法大致是
localhost/[你的文件地址从www直到index.php]/index.php/[类名]/[方法名及需要的参数]
例如项目路径
,要显示之前做得静态界面,则url为http://localhost/news/index.php/Pages/view
如果希望显示about.php,则url为http://localhost/news/index.php/Pages/view/about
显示结果为
ci在url上不区分大小写,但如果出现404的情况,需要多尝试,检查大小写是否符合要求,文件路径是否正确,路径是否有中文等问题。