您的位置:首页 > 其它

[codeigniter 四]、模型和辅助函数

2015-07-17 23:27 477 查看
1、模型。

(1)、什么是模型?

模型对于那些传统MVC方式的人来说是可选的。比如,我们之前讲的一些例子中就没有用到M层,那是由于我们暂时还没有涉及到与数据库的操作,一旦涉及到数据库操作,我们就要用M层了,因为模型(M)就是专门用来和数据库打交道的。

(2)、那怎么样创建一个模型呢?

其实模型就是一个PHP类,里面包含添加、删除、更新和统计数据等方法,我们来创建一个简单的看一下,代码如下:

class User_model extends CI_Model {

function __construct()
{
parent::__construct();
}

//执行获取数据操作
function get()
{
//代码省略……
}

//执行添加数据操作
function insert()
{
//代码省略……
}

//执行更新数据操作
function update()
{
//代码省略……
}

//执行删除数据操作
function delete()
{
//代码省略……
}
}


此时我们需要注意以下几点:

a、创建的模型类文件应该放在application/models/ 文件夹,文件名应该是模型类名的小写格式。例如上例当中的,文件名应该为user_model.php;

b、类名的首字母必须大写,其他字母小写;

c、确保你的类继承了基本模型类(CI_Model)。

那这样的模型文件建好了,该怎么用呢?

(3)、载入模型。

我们写好的模型是通过控制器来载入和引用的。载入模型在CI中有两种方式:

一种是手动载入,假如我们想载入上面那个模型类,那它可以很容易的在控制器中的方法中装载,就像这样:

$this->load->model('User_model');

以上通常都放在控制器的构造函数中进行装载,毕竟这样只需要手动装载一次就够了。

另一种是自动载入,找到并打开 application/config/autoload.php
文件,然后在自动装载数组中加入这个模型,只要设置$autoload['model'] = array();为:
$autoload['model'] = array('user_model');


载入完模型之后,我们就可以使用它了:

$this->User_model->add();
$this->User_model->insert();


由于我们会涉及到数据库操作,因此首先要进行数据库的配置,打开application/config/database.php文件,设置连接数据库的一些参数值,如下:

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '你的数据库主机名';
$db['default']['password'] = '你的数据库密码';
$db['default']['dbdriver'] = 'mysql';
$db['default']['database'] = '你的数据库名';


上面只是设置了其中一部分的参数,想了解更多你可以浏览CI中国的中文手册,http://codeigniter.org.cn/user_guide/database/configuration.html

然后我们开始建一个数据表,这里叫user表,表结构如下:

create table user (
id int(11) auto_increment primary key not null,
name varchar(30) not null default '',
nickname varchar(50) not null default '',
sex varchar(20) not null default '男',
age int(11) not null default 0
);


我们插入一条数据,如下:

insert into user values(null,'Sulley007','冷不丁','男','24');
insert into user values(null,'Sulley','先生','男','23');


接下来我们写一个用户模型,就起名为user_model.php,代码如下:

<?php
class User_model extends CI_Model {
//获取用户信息
public function get()
{
$data = '';
//SQL语句的select部分,这里查询user表的所有字段
$this->db->select("*");
//运行选择查询语句并且返回结果集给$data
$data = $this->db->get("user");
return $data;
}
}
?>


紧接着写控制器,起名为user.php,代码如下:

<?php
class User extends CI_Controller{
//构造函数
function __construct()
{
parent::__construct();
//载入用户模型
$this->load->model("User_model");
}
//显示用户信息列表
public function index()
{
//调用用户模型中的get方法,将结果集返回给$query
$query = $this->User_model->get();
//将结果集作为关联数组返回
$data['userList'] = $query->result_array();
$this->load->view('user_index',$data);
}
}
?>


最后,我们开始写视图,代码如下:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>一个带模型的简单示例</title>
</head>
<body>
<div>
<table width="500px">
<tr>
<th>ID号</th>
<th>姓名</th>
<th>外号</th>
<th>性别</th>
<th>年龄</th>
</tr>
<?php foreach ($userList as $item): ?>
<tr style="text-align:center;">
<td><?php echo $item['id'] ;?></td>
<td><?php echo $item['name'] ;?></td>
<td><?php echo $item['nickname'] ;?></td>
<td><?php echo $item['sex'] ;?></td>
<td><?php echo $item['age'] ;?></td>
</tr>
<?php endforeach; ?>
</table>
</div>
</body>
</html>


好,现了我们打开浏览器,输入http://localhost/ci_demo/index.php/user/index即可访问到用户列表啦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: