下面我来详细讲解“CI框架入门之MVC简单示例”的完整攻略。
什么是CI框架
CI(CodeIgniter)是一款轻量级的 PHP 框架,具有体积小、执行速度快、具备 MVC 模式、开发灵活性高等特点。CI基于MVC(Model-View-Controller)设计模式,通过将应用程序分成三个互动的部分来增强应用程序的灵活性和可扩展性。这三个部分为模型(Model)、视图(View)和控制器(Controller)。
CI框架入门之MVC简单示例
环境搭建
首先,你需要安装好PHP和Apache环境,并在本地搭建好CI框架。
MVC设计模式
Model
Model是代表数据和业务逻辑的类,它能与数据库进行交互。在CI中,Model通常继承CI_Model类,可以使用一些内置的方法如查询、更新操作等。示例:
class User_model extends CI_Model {
public function __construct()
{
parent::__construct();
$this->load->database(); // 加载数据库类
}
public function get_all_users()
{
$query = $this->db->get('user');
return $query->result_array();
}
}
以上代码中,我们定义了一个User_model类,并继承CI_Model类,通过构造函数来加载数据库类,通过get_all_users
方法可以获取到user表的所有数据。
View
View是用户展示数据的部分,通常为HTML代码,但可以嵌入PHP代码以便进行数据处理。在CI中,View使用PHP语言编写,并通过控制器将数据传递至View中。示例:
<!DOCTYPE html>
<html>
<head>
<title>CI 框架示例</title>
</head>
<body>
<h1>用户列表</h1>
<table>
<thead>
<tr>
<th>编号</th><th>姓名</th><th>年龄</th>
</tr>
</thead>
<tbody>
<?php foreach($users as $user): ?>
<tr>
<td><?= $user['id'] ?></td><td><?= $user['name'] ?></td><td><?= $user['age'] ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</body>
</html>
以上代码中,我们定义了一个用户列表的View,通过$users
变量来获取到控制器传递过来的数据,并在HTML代码中进行展示。
Controller
Controller是连接Model和View的中间件,将业务数据传递给View,同时处理POST、GET等请求。在CI中,Controller通常继承CI_Controller类,可以使用内置的方法如load->view
将数据传递给View。示例:
class User extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('user_model');
}
public function index()
{
$data['users'] = $this->user_model->get_all_users();
$this->load->view('user_list', $data);
}
}
以上代码中,我们定义了一个User控制器,通过构造函数来加载User_model类,通过index
方法来获取到user表的数据,并将数据传递给View。
使用示例
通过上述三个部分的分析,我们已经了解了CI框架下的MVC设计模式,并知道了如何创建Model、View和Controller,下面我们通过一个示例来演示如何使用CI框架。
创建数据库和数据表
在MySQL数据库中创建一个CI_demo数据库,执行以下SQL语句创建一个user数据表:
CREATE TABLE user (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
age INT(3) NOT NULL
)
创建Model
在models目录下创建user_model.php文件,输入以下代码:
class User_model extends CI_Model {
public function __construct()
{
parent::__construct();
$this->load->database();
}
public function get_all_users()
{
$query = $this->db->get('user');
return $query->result_array();
}
public function insert_user($data)
{
$this->db->insert('user', $data);
}
}
以上代码中,我们定义了一个User_model类,并继承CI_Model类。通过get_all_users
方法可以获取到user表的所有数据。通过insert_user
方法可以向user表中新增一条数据。
创建View
在views目录下创建user_list.php文件,输入以下代码:
<!DOCTYPE html>
<html>
<head>
<title>CI 框架示例</title>
</head>
<body>
<h1>用户列表</h1>
<table>
<thead>
<tr>
<th>编号</th><th>姓名</th><th>年龄</th>
</tr>
</thead>
<tbody>
<?php foreach($users as $user): ?>
<tr>
<td><?= $user['id'] ?></td><td><?= $user['name'] ?></td><td><?= $user['age'] ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<h1>新增用户</h1>
<form action="<?= site_url('user/insert') ?>" method="post">
<label>姓名:<input type="text" name="name"></label><br>
<label>年龄:<input type="text" name="age"></label><br>
<input type="submit" value="提交">
</form>
</body>
</html>
以上代码中,我们定义了一个用户列表的View,通过$users
变量来获取到控制器传递过来的数据,并在HTML代码中进行展示。另外,我们也定义了一个新增用户的表单,通过site_url
方法设置表单提交的URL。
创建Controller
在controllers目录下创建user.php文件,输入以下代码:
class User extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('user_model');
}
public function index()
{
$data['users'] = $this->user_model->get_all_users();
$this->load->view('user_list', $data);
}
public function insert()
{
$data = array(
'name' => $this->input->post('name'),
'age' => $this->input->post('age')
);
$this->user_model->insert_user($data);
redirect('user');
}
}
以上代码中,我们定义了一个User控制器,通过构造函数来加载User_model类。在index
方法中,我们获取到user表的数据,并将数据传递给user_list View。在insert
方法中,我们获取到表单提交的数据,并调用User_model类中的insert_user方法向user表中插入数据,最后重定向到user控制器的index方法。
总结
通过上述示例我们已经对CI框架下的MVC设计模式有了深入的了解。在创建Model、View和Controller时,需要注意以下几点:
- Model类需要继承CI_Model类,并通过构造函数来加载数据库类。
- View使用PHP语言编写,并通过控制器将数据传递至View中。
- Controller类需要继承CI_Controller类,并通过构造函数来加载相关Model类。
- 控制器的方法对应了路由中的URL,所以需要注意方法名的规范。
- 在View中可以通过PHP标签来嵌入PHP代码,但需要注意安全问题。
以上就是CI框架入门之MVC简单示例的完整攻略,希望能对你的学习有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CI框架入门之MVC简单示例 - Python技术站