基础
index.php 指的是入口文件
控制器作用协调模型和视图
模型model:协调数据和保存数据
视图view:只负责显示
动作action:是控制器中的方法,被浏览器请求
CI中的mvc
访问规则:入口文件.php/控制器/动作(方法)
在application目录中:
Model模型
View视图
Controllers控制器
控制器:
1.在CI中,不需要加后缀,直接类,类名.php
2.文件名全都小写,eg:user.php
3.所有控制器,直接或间接继承自CI.controller类
4.控制器中,对方法(动作)的要求
Public
不能以-开头
视图:
1.在控制器中加载视图 //直接写视图名字,不写扩展名字,如果有子目录,则写上目录名字
$this->load->view(视图);可以多次调用 $this->load->view(视图);
2.视图中直接使用原生php代码
题外话
{
在CI中分配变量时,用$this->load->vars(‘key’,‘value’);
举例子:$this->load->vars(‘title’,‘这是标题’);
如果是数组:$demo['title'] = "这是标题";
$list=array(...)(一个二维数组)
$demo['list'] = $list;
$this->load->vars($demo);
}
3.推荐用:
<?php foreach($list as $item):?>
<?=&item[‘name’];?>(=为短标签)
<?php endforeach;?>(数组显示)
超级对象
当前的控制器对象,里面有许多属性。
比如说:$this->load(装载器类的实例)
$this->uri
$this->input
以$this->load为例子
{
这个式子等价于:
CI为自动加载类(system中的core里面的类)
这个例子引用的是loader
$obj = new CI_Loader;
$this->load = $obj;
$this->obj->view();
//$this->obj->vars();
}
数据库访问
1.修改配置文件:application/config/database.php
填好相关数据的信息(hostname,username,password,。。。)
2.将数据库访问对象,装载到超级对象的属性中 ($this->db)
$this->load->database();//必须要有,引用封装好的数据库类
追加:
{
if 你要用到多个数据库的情况下
原先给的是$db['default']['hostname'] = '';(等一系列相同的,这里省略)
你可以复制所有更改要换的信息,将default改成其他,再控制器中类的方法中$this->load->database(其他),指定好你要配置的哪一组数据库文件,即可。
}
$sql = '......';
$res = $this->db->query($sql);//返回是一个对象
$users = $res->result();//返回数组,数组中是一个一个对象
var_dump($users);
还有一种方法是
$sql = '......';
$res = $this->db->query($sql);//返回是一个对象
$users = $res->result();//返回数组,数组中是一个一个对象
// $res->result_array();回返二维数组,里面是关联数组
$data['list'] = $users;
$this->load->view('user/showusers',$data);//user/showusers指的是view下user下showusers.php