`

CodeIgniter用户指南:模型

阅读更多

 

模型对于那些想用传统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用户指南 pdf`内容的详细概述。 **一、CodeIgniter概述** CodeIgniter是一个轻量级的PHP框架,它提供了丰富的库和助手函数,以减少开发者在编写重复代码上的时间。它的核心理念是高效、简单和...

    CodeIgniter 用户指南 版本 2.1.4

    ### CodeIgniter 用户指南 版本 2.1.4 #### CodeIgniter 概述与特点 **CodeIgniter** 是一款基于 PHP 的轻量级应用开发框架,旨在简化 Web 开发流程并提高开发效率。它采用了 Model-View-Controller (MVC) 架构...

    CodeIgniter用户指南(版本1.7.2).chm

    在本用户指南中,我们将深入探讨CodeIgniter的核心概念、特性以及如何利用它们来提升开发效率。 首先,让我们了解一下CodeIgniter的MVC(模型-视图-控制器)架构。这个模式将应用程序分为三个主要部分:模型处理...

    CodeIgniter最新版用户指南 1.7.1

    15. **用户指南**:提供的用户指南详细介绍了以上所有功能的使用方法,还包括了配置、自定义、扩展CodeIgniter的教程。 通过阅读"CodeIgniter用户指南(2009-08-25).chm",你可以深入了解每个知识点的细节,逐步掌握...

    CodeIgniter 用户指南

    【CodeIgniter 用户指南】是关于使用CodeIgniter框架构建Web应用的一份详细教程。CodeIgniter是一个轻量级的PHP框架,它遵循MVC(Model-View-Controller)架构模式,帮助开发者快速构建功能丰富的网站。在这个指南中...

    codeigniter_auth:具有身份验证和引导程序的codeigniter种子项目

    - `models/`:用户模型(User_model.php)存储在此,负责数据库操作。 - `views/`:包含所有视图文件,如登录、注册和用户管理界面。 - `public/`:包含静态资源,如CSS、JavaScript文件和图片。 - `assets/`:...

    codeigniter-vue:CodeIgniter + VueJs-准备部署新项目

    1. **app** - 包含CodeIgniter的控制器、模型、视图等核心文件。 2. **public** - 通常包含静态资源,如CSS样式表、JavaScript文件和图片,Vue.js编译后的代码可能放在这里。 3. **resources** - 可能包含Vue.js的...

    codeigniter-sekulonlen:由CodeIgniter 4和Bootstrap 5构建的学习管理系统

    1. **模型-视图-控制器架构**:CodeIgniter 4遵循MVC模式,将业务逻辑(模型)、数据展示(视图)和用户交互(控制器)分离,提高了代码的可维护性和可扩展性。 2. **安全措施**:内置的安全特性如输入过滤、XSS防御...

    codeigniter 2.0 中文手册

    1. **控制器(Controller)**:CodeIgniter中的控制器是应用程序的入口点,负责接收用户请求并调用模型和视图来处理数据和展示结果。控制器类是PHP类,它们扩展了CI_Controller基类,通过定义方法来处理不同的URL路由...

    CodeIgniter-CI框架-指南 初学必读

    3. **控制器**:作为模型和视图的中介,接收用户请求,调用模型处理数据,然后将结果传递给视图进行展示。 **三、CodeIgniter 的安装与配置** 安装CodeIgniter通常涉及下载框架的ZIP文件,解压后上传到服务器的Web...

    CodeIgniter2.1.4中文手册(HTML离线版)

    这个中文手册是开发者的重要参考资料,提供了详尽的API文档、教程和最佳实践指南,帮助用户更好地理解和使用CodeIgniter框架。以下是手册中包含的一些核心知识点: 1. **框架介绍**:CodeIgniter是一个轻量级、高效...

    CodeIgniter_2.0.0.zip

    10. 用户指南:CodeIgniter 2.0.0附带了详尽的用户手册,为初学者和有经验的开发者提供了清晰的指导。 11. 社区支持:CodeIgniter拥有活跃的开发者社区,提供大量教程、插件和扩展,便于开发者解决问题和分享经验。...

    CodeIgniter2.0中文手册.zip

    10. 用户指南:CodeIgniter的中文手册详尽地解释了每个组件的使用方法,包括实例代码和常见问题解答,是学习和开发过程中的得力助手。 11. 扩展性:通过钩子(Hooks)、插件(Plugins)和第三方库,开发者可以扩展...

    codeigniter 代码实例分享

    10. **user_guide**:CodeIgniter的用户指南,通常包含详细的框架文档,有助于开发者理解和学习如何使用CodeIgniter的各种功能。 通过这些文件,我们可以推断这个项目是用CodeIgniter搭建的,结合了jQuery 1.4的...

    CodeIgniter 2.2.2 中文文档 CI2.2.2中文文档

    3. **控制器(Controllers)**:控制器是应用程序的核心,负责处理用户请求并调用模型和视图。理解如何创建和使用控制器对于构建MVC(模型-视图-控制器)架构至关重要。 4. **模型(Models)**:模型负责处理数据逻辑,...

    CodeIgniter2-stable-user_guide

    10. **安全最佳实践**:用户指南会讲解如何确保应用程序的安全性,包括防止SQL注入、XSS攻击、CSRF攻击,以及如何使用CodeIgniter的认证和授权功能。 11. **缓存(Caching)**:为了提高性能,CodeIgniter支持多种...

    PHP开发框架CodeIgniter中文参考资料

    2. **CodeIgniter用户指南(v1.7.2).chm**:这是CodeIgniter 1.7.2版本的官方用户指南,虽然版本较旧,但仍然包含了许多基本概念和最佳实践。该指南通常以实例为主,让开发者能够通过实际操作学习如何构建应用程序...

    codeigniter中文手册教程

    10. **用户指南**: CodeIgniter的官方用户指南详尽地解释了框架的每个部分,是初学者入门和进阶开发者深入理解的宝贵资源。 在你提供的`CI_user_guide`中,你可以期待找到关于以上所有知识点的详细介绍,以及更多...

    php敏捷开发框架Codeigniter

    "Controller"作为中间人,协调模型和视图之间的通信,处理用户的请求并返回响应。这种架构使得项目结构清晰,易于理解和扩展。 CodeIgniter的特性包括: 1. **小而强大**:它的核心系统只包含必要的库,使得下载和...

    codeigniter packpub 最新1.7.2 书籍

    - **MVC架构**:模型(Model)、视图(View)、控制器(Controller)模式是CodeIgniter的核心架构之一。 - **模型**:负责数据逻辑和业务规则。 - **视图**:展示用户界面。 - **控制器**:协调模型与视图之间的...

Global site tag (gtag.js) - Google Analytics