模型对于那些想用传统MVC方式的人来说是可选的。
什么是模型?
模型是专门用来和数据库打交道的PHP类。例如,假设你想用CodeIgniter来做一个Blog。你可以写一个模型类,里面包含插入、更新、删除Blog数据的方法。下面的例子将向你展示一个普通的模型类:
class Blogmodel extends Model {
var
$title = '';
var $content = '';
var $date =
'';
function Blogmodel()
{
// Call the Model
constructor for
PHP4
parent::Model();
}
function get_last_ten_entries()
{
$query
= $this->db->get('entries', 10);
return
$query->result();
}
function insert_entry()
{
$this->title
= $_POST['title']; // 请阅读下方的备注
$this->content =
$_POST['content'];
$this->date =
time();
$this->db->insert('entries', $this);
}
function update_entry()
{
$this->title
= $_POST['title'];
$this->content =
$_POST['content'];
$this->date =
time();
$this->db->update('entries', $this, array('id'
=> $_POST['id']));
}
}
注意: 上面用到的函数是 Active Record
数据库函数.
备注: 为了简单一点,我们直接使用了$_POST。不过,这不太好,平时我们应该使用 输入类:$this->input->post('title')
剖析模型
模型类文件存放在 application/models/ 文件夹。 如果你愿意,可以在里面建立子文件夹。
最基本的模型类必须像这样:
class Model_name extends Model {
function Model_name()
{
parent::Model();
}
}
Model_name 是模型类的名字。
类名的首字母必须大写,其他字母小写。并且确保你的类继承了基本模型类(Base Model Class)。
文件名应该是模型类名的小写版。比如,如果你的类是:
class User_model extends Model {
function User_model()
{
parent::Model();
}
}
类的文件名应该是:
application/models/user_model.php
载入模型
模型可以在 controller
中被引用。就像这样:
$this->load->model('Model_name');
如果模型文件在子文件夹下,引用的时候要带上相对路径名。例如:如果你有一个模型
application/models/blog/queries.php。下面的代码可以引用它:
$this->load->model('blog/queries');
模型一旦被载入,你就能通过下面的方法使用它:
$this->load->model('Model_name');
$this->Model_name->function();
如果你想给你的model指派一个不同的对象名,可以在加载模型函数中指定第二个参数:
$this->load->model('Model_name',
'fubar');
$this->fubar->function();
这里有个控制器的例子,加载一个模型,然后通过视图显示出来
class Blog_controller extends Controller {
function blog()
{
$this->load->model('Blog');
$data['query']
=
$this->Blog->get_last_ten_entries();
$this->load->view('blog',
$data);
}
}
自动载入模型
如果您需要一个在整个项目中都起作用的特定模型,您可以让 CodeIgniter 在初始化时自动装载它。实现的方法是打开
application/config/autoload.php 文件,然后在自动装载数组中添加上这个模型。
连接到数据库
当一个模型被载入时,它并不会自动连接数据库。以下方法可以使您连接数据库:
- 您可以使用标准方法来连接数据库(说明),
也可以通过控制器或者您的自定义模型。
- 您可以把第三个参数设置为TRUE来使模型装载函数自动连接数据库,连接配置可以在您的数据库配置文件中可以定义:
$this->load->model('Model_name', '',
TRUE);
- 您可以手动设定第三个参数来载入您的自定义数据库配置:
$config['hostname'] =
"localhost";
$config['username'] = "myusername";
$config['password'] =
"mypassword";
$config['database'] = "mydatabase";
$config['dbdriver'] =
"mysql";
$config['dbprefix'] = "";
$config['pconnect'] =
FALSE;
$config['db_debug'] =
TRUE;
$this->load->model('Model_name', '',
$config);
翻译贡献者: analyzer, Hex, longbill, shishirui, soyota
分享到:
相关推荐
以下是对`codeigniter用户指南 pdf`内容的详细概述。 **一、CodeIgniter概述** CodeIgniter是一个轻量级的PHP框架,它提供了丰富的库和助手函数,以减少开发者在编写重复代码上的时间。它的核心理念是高效、简单和...
### CodeIgniter 用户指南 版本 2.1.4 #### CodeIgniter 概述与特点 **CodeIgniter** 是一款基于 PHP 的轻量级应用开发框架,旨在简化 Web 开发流程并提高开发效率。它采用了 Model-View-Controller (MVC) 架构...
在本用户指南中,我们将深入探讨CodeIgniter的核心概念、特性以及如何利用它们来提升开发效率。 首先,让我们了解一下CodeIgniter的MVC(模型-视图-控制器)架构。这个模式将应用程序分为三个主要部分:模型处理...
15. **用户指南**:提供的用户指南详细介绍了以上所有功能的使用方法,还包括了配置、自定义、扩展CodeIgniter的教程。 通过阅读"CodeIgniter用户指南(2009-08-25).chm",你可以深入了解每个知识点的细节,逐步掌握...
【CodeIgniter 用户指南】是关于使用CodeIgniter框架构建Web应用的一份详细教程。CodeIgniter是一个轻量级的PHP框架,它遵循MVC(Model-View-Controller)架构模式,帮助开发者快速构建功能丰富的网站。在这个指南中...
- `models/`:用户模型(User_model.php)存储在此,负责数据库操作。 - `views/`:包含所有视图文件,如登录、注册和用户管理界面。 - `public/`:包含静态资源,如CSS、JavaScript文件和图片。 - `assets/`:...
1. **app** - 包含CodeIgniter的控制器、模型、视图等核心文件。 2. **public** - 通常包含静态资源,如CSS样式表、JavaScript文件和图片,Vue.js编译后的代码可能放在这里。 3. **resources** - 可能包含Vue.js的...
1. **模型-视图-控制器架构**:CodeIgniter 4遵循MVC模式,将业务逻辑(模型)、数据展示(视图)和用户交互(控制器)分离,提高了代码的可维护性和可扩展性。 2. **安全措施**:内置的安全特性如输入过滤、XSS防御...
1. **控制器(Controller)**:CodeIgniter中的控制器是应用程序的入口点,负责接收用户请求并调用模型和视图来处理数据和展示结果。控制器类是PHP类,它们扩展了CI_Controller基类,通过定义方法来处理不同的URL路由...
3. **控制器**:作为模型和视图的中介,接收用户请求,调用模型处理数据,然后将结果传递给视图进行展示。 **三、CodeIgniter 的安装与配置** 安装CodeIgniter通常涉及下载框架的ZIP文件,解压后上传到服务器的Web...
这个中文手册是开发者的重要参考资料,提供了详尽的API文档、教程和最佳实践指南,帮助用户更好地理解和使用CodeIgniter框架。以下是手册中包含的一些核心知识点: 1. **框架介绍**:CodeIgniter是一个轻量级、高效...
10. 用户指南:CodeIgniter 2.0.0附带了详尽的用户手册,为初学者和有经验的开发者提供了清晰的指导。 11. 社区支持:CodeIgniter拥有活跃的开发者社区,提供大量教程、插件和扩展,便于开发者解决问题和分享经验。...
10. 用户指南:CodeIgniter的中文手册详尽地解释了每个组件的使用方法,包括实例代码和常见问题解答,是学习和开发过程中的得力助手。 11. 扩展性:通过钩子(Hooks)、插件(Plugins)和第三方库,开发者可以扩展...
10. **user_guide**:CodeIgniter的用户指南,通常包含详细的框架文档,有助于开发者理解和学习如何使用CodeIgniter的各种功能。 通过这些文件,我们可以推断这个项目是用CodeIgniter搭建的,结合了jQuery 1.4的...
3. **控制器(Controllers)**:控制器是应用程序的核心,负责处理用户请求并调用模型和视图。理解如何创建和使用控制器对于构建MVC(模型-视图-控制器)架构至关重要。 4. **模型(Models)**:模型负责处理数据逻辑,...
10. **安全最佳实践**:用户指南会讲解如何确保应用程序的安全性,包括防止SQL注入、XSS攻击、CSRF攻击,以及如何使用CodeIgniter的认证和授权功能。 11. **缓存(Caching)**:为了提高性能,CodeIgniter支持多种...
2. **CodeIgniter用户指南(v1.7.2).chm**:这是CodeIgniter 1.7.2版本的官方用户指南,虽然版本较旧,但仍然包含了许多基本概念和最佳实践。该指南通常以实例为主,让开发者能够通过实际操作学习如何构建应用程序...
10. **用户指南**: CodeIgniter的官方用户指南详尽地解释了框架的每个部分,是初学者入门和进阶开发者深入理解的宝贵资源。 在你提供的`CI_user_guide`中,你可以期待找到关于以上所有知识点的详细介绍,以及更多...
"Controller"作为中间人,协调模型和视图之间的通信,处理用户的请求并返回响应。这种架构使得项目结构清晰,易于理解和扩展。 CodeIgniter的特性包括: 1. **小而强大**:它的核心系统只包含必要的库,使得下载和...
- **MVC架构**:模型(Model)、视图(View)、控制器(Controller)模式是CodeIgniter的核心架构之一。 - **模型**:负责数据逻辑和业务规则。 - **视图**:展示用户界面。 - **控制器**:协调模型与视图之间的...