亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

direktori cari
歡迎 目錄 快速參考圖 基本信息 服務(wù)器要求 許可協(xié)議 變更記錄 關(guān)于CodeIgniter 安裝 下載 CodeIgniter 安裝指導 從老版本升級 疑難解答 介紹 開始 CodeIgniter 是什么? CodeIgniter 速記表 支持特性 應用程序流程圖 模型-視圖-控制器 架構(gòu)目標 教程 內(nèi)容提要 加載靜態(tài)內(nèi)容 創(chuàng)建新聞條目 讀取新聞條目 結(jié)束語 常規(guī)主題 CodeIgniter URL 控制器 保留字 視圖 模型 輔助函數(shù) 使用 CodeIgniter 類庫 創(chuàng)建你自己的類庫 使用 CodeIgniter 適配器 創(chuàng)建適配器 創(chuàng)建核心系統(tǒng)類 鉤子 - 擴展框架的核心 自動裝載資源 公共函數(shù) URI 路由 錯誤處理 緩存 調(diào)試應用程序 以CLI方式運行 管理應用程序 處理多環(huán)境 PHP替代語法 安全 開發(fā)規(guī)范 類庫參考 基準測試類 日歷類 購物車類 配置類 Email 類 加密類 文件上傳類 表單驗證詳解 FTP 類 圖像處理類 輸入類 Javascript 類 語言類 裝載類 遷移類 輸出類 分頁類 模板解析器類 安全類 Session 類 HTML 表格類 引用通告類 排版類 單元測試類 URI 類 User-Agent 類 表單驗證 XML-RPC 和 XML-RPC 服務(wù)器 Zip 編碼類 緩存適配器 適配器參考 適配器 數(shù)據(jù)庫類 Active Record 類 數(shù)據(jù)庫緩存類 自定義函數(shù)調(diào)用 數(shù)據(jù)庫配置 連接你的數(shù)據(jù)庫 數(shù)據(jù)庫快速入門例子代碼 字段數(shù)據(jù) 數(shù)據(jù)庫維護類 查詢輔助函數(shù) 數(shù)據(jù)庫類 查詢 生成查詢記錄集 表數(shù)據(jù) 事務(wù) 數(shù)據(jù)庫工具類 JavaScript類 輔助函數(shù)參考 數(shù)組輔助函數(shù) CAPTCHA 輔助函數(shù) Cookie Helper 日期輔助函數(shù) 目錄輔助函數(shù) 下載輔助函數(shù) Email 輔助函數(shù) 文件輔助函數(shù) 表單輔助函數(shù) HTML輔助函數(shù) Inflector 輔助函數(shù) 語言輔助函數(shù) 數(shù)字輔助函數(shù) 路徑輔助函數(shù) 安全輔助函數(shù) 表情輔助函數(shù) 字符串輔助函數(shù) 文本輔助函數(shù) 排版輔助函數(shù) URL 輔助函數(shù) XML 輔助函數(shù)
watak

CodeIgniter 用戶指南 版本 2.1.0

編輯文檔、查看近期更改請 登錄 或 注冊  找回密碼
查看原文

模型

模型對于那些想用傳統(tǒng)MVC方式的人來說是可選的。

  • 什么是模型?
  • 剖析模型
  • 載入模型
  • 自動載入模型
  • 連接數(shù)據(jù)庫

什么是模型?

模型是專門用來和數(shù)據(jù)庫打交道的PHP類。例如,假設(shè)你想用CodeIgniter來做一個Blog。你可以寫一個模型類,里面包含插入、更新、刪除Blog數(shù)據(jù)的方法。下面的例子將向你展示一個普通的模型類:

class?Blogmodel?extends?CI_Model?{

????var $title?? = '';
????var $content = '';
????var $date??? = '';

????function?__construct()
????{
????????parent::__construct();
????}
????
????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']));
????}

}

注意: 上面用到的函數(shù)是 Active Record 數(shù)據(jù)庫函數(shù).

備注: 為了簡單一點,我們直接使用了$_POST。不過,這不太好,平時我們應該使用 輸入類:$this->input->post('title')

剖析模型

模型類文件存放在 application/models/ 文件夾。 如果你愿意,可以在里面建立子文件夾。

最基本的模型類必須像這樣:

class?Model_name?extends?CI_Model?{

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

Model_name 是模型類的名字。 類名的首字母必須大寫,其他字母小寫。 并且確保你的類繼承了基本模型類(Base Model Class)。

文件名應該是模型類名的小寫版。比如,如果你的類是:

class?User_model?extends?CI_Model?{

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

類的文件名應該是:

application/models/user_model.php

載入模型

模型可以在 控制器 中被引用。 就像這樣:

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

如果模型文件在子文件夾下,引用的時候要帶上相對路徑名。例如:如果你有一個模型 application/models/blog/queries.php。 下面的代碼可以引用它:

$this->load->model('blog/queries');

模型一旦被載入,你就能通過下面的方法使用它:

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

$this->Model_name->function();

在默認的情況下模型名稱就直接被引入作為對象名,就如上面所示。當然,如果你愿意,可以起個更好記的對象名!那么,可以在加載模型函數(shù)中指定第二個參數(shù)來設(shè)定,例如:

$this->load->model('Model_name', 'fubar');

$this->fubar->function();

這里有個控制器的例子,加載一個模型,然后通過視圖顯示出來

class?Blog_controller?extends?CI_Controller?{

????function?blog()
????{
????????$this->load->model('Blog');

????????$data['query'] = $this->Blog->get_last_ten_entries();

????????$this->load->view('blog', $data);
????}
}

自動載入模型

如果您需要一個在整個項目中都起作用的特定模型,您可以讓 CodeIgniter 在初始化時自動裝載它。實現(xiàn)的方法是打開 application/config/autoload.php 文件,然后在自動裝載數(shù)組中添加上這個模型。

備注: 經(jīng)過測試(以加載一個模型為例)自動加載模型和手動載入模型時,消耗的內(nèi)存情況是一樣的!但是當加載模型越多消耗內(nèi)存就會越大。自動加載模型是要犧牲內(nèi)存消耗換取的,所以盡量不要自動加載不必要貫穿全站項目的模型!

連接到數(shù)據(jù)庫

當一個模型被載入時,它并不會自動連接數(shù)據(jù)庫。以下方法可以使您連接數(shù)據(jù)庫:

  • 您可以使用標準方法來連接數(shù)據(jù)庫(說明), 也可以通過控制器或者您的自定義模型。
  • 您可以把第三個參數(shù)設(shè)置為TRUE來使模型裝載函數(shù)自動連接數(shù)據(jù)庫,連接配置可以在您的數(shù)據(jù)庫配置文件中可以定義:
  • $this->load->model('Model_name', '', TRUE);
  • 您可以手動設(shè)定第三個參數(shù)來載入您的自定義數(shù)據(jù)庫配置: $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);
  • 備注: 經(jīng)過友好鏈接測試(也即只連接數(shù)據(jù)庫不涉及查詢),自動連接數(shù)據(jù)庫和手動連接數(shù)據(jù)庫時,消耗的內(nèi)存情況是一樣的,我本人的本機測試是0.67M

?

翻譯貢獻者: analyzer, Hex, levin, li_star, longbill, ripen, shishirui, soyota
最后修改: 2012-03-07 14:15:16
Artikel sebelumnya: Artikel seterusnya: