模型对于那些想用传统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用户指南.chm(1.7.2)CodeIgniter用户指南.chm(1.7.2)CodeIgniter用户指南.chm(1.7.2)CodeIgniter用户指南.chm(1.7.2)
codeigniter 2.1.4 的用户指南pdf版,适合离线阅读
CodeIgniter 用户指南 版本 2.1.4
CodeIgniter手册,适合PHP框架的入门
CodeIgniter用户指南V2.2.0.chm
什么是CodeIgniter CodeIgniter是一个应用程序开发框架-一个工具包-适用于使用PHP构建网站的人们。...安装请参阅《 CodeIgniter用户指南》的。执照请参阅。资源向我们的或通过我们上的报告安全问题,谢谢。致谢Cod
CodeIgniter用户指南(版本1.7.2).chm
Codeigniter-Console 一个CodeIgniter 3.x框架控制台。 安装 "require-dev" : { ...建立模型 vendor/bin/codeigniter make:model <model> [--suffix=_model] 执照 麻省理工学院 (c)Asif Iqbal“ webwizo” 2015
CodeIgniter部署器 3.0的部署工具。 您可以使用一个命令部署CodeIgniter。 这基于 3.0。资料夹结构 codeigniter/└── deploy/ ├── deploy.php ... config file for Deployer ├── deploy.sh ... script ...
CodeIgniter WebSocket库CodeIgniter WebSocket库。 它允许您使用Ratchet( & )Websocket技术制作功能强大的实时应用程序。适用于Codeigniter 4.x的WebSocket库 如果遇到任何问题,可以检查CodeIgniter WebSocket...
CodeIgniter 应用程序集成 RESTfull API、基础模型、离子验证模块和模板模块。特征 : 简单轻量级身份验证系统 : 完全 RESTful 服务器实现,使用一个库、一个配置文件和一个控制器。 : CodeIgniter 基础 CRUD 模型,...
CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包。它提供一套丰富的标准库以及简单的接口和逻辑结构,其目的是...使用 CodeIgniter 可以减少代码的编写量,并将你的精力投入到项目的创造性开发上。
之前网上搜索到的2.1.4的chm版本都是索引乱码的版本,而且不能搜索, 我今天2018-1-2 重新反编译chm后,再重新打包修改了一下,现在可以看索引, 并且支持搜索了。
CodeIgniter 用户指南 版本 1.7.1 2009-02-22最新CHM版 1.优化了页面的显示 2.支持中文搜索 3.清除了多余的js文件
PHP 如果您是初学者,几乎没有PHP经验,或者您没有PHP经验,则可能需要阅读像这样的培训教程: PHP初学者教程:7天学习, CodeIgniter 4文档和其他信息CodeIgniter4用户指南: : Lonnie Ezell关于CodeIgniter 4的...
一个简单的Codeigniter用户登录验证例子程序,支持session,密码加密存储,供初学者参考。
codeigniter 2.1.0用户指南(中文版)本人亲自实践,绝对可用!广大CI爱好者可下载使用。我在网上找过很多,要么版本不对,要么就是打不开。这个事能够使用的。
代码样式: 您应该遵循Codeigniter 4编码样式指南: : 每一个: 班级功能(方法) 应该使用以下模板对类进行注释: /** * Class Name * * @package Package Name * @subpackage Subpackage * @description ...
CodeIgniter 3.1.x 安装 如果没有,请在应用程序的根目录中创建composer.json文件。 在文件中添加以下文本: { " require " : { " tan5en5/codeigniter-debugbar " : " dev-master " } } 启用Composer(位于...
什么是CodeIgniter CodeIgniter是一个应用程序开发框架-一个工具包-适用于使用PHP构建网站的人们...安装请参阅《 CodeIgniter用户指南》的。执照请参阅。 资源用户指南语言文件翻译社区论坛社区维基社区闲散频道向我们