首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

CodeIgniter 框架入門教程(一):目錄結構、路由、視圖、數據庫、AR 操作

     編輯:PHP 相關知識

CI 框架核心架構與基礎操作全景指南

目錄結構解析

system/           框架核心(不可修改)
  core/           核心類:Controller、Model、Router、Loader...
  libraries/      通用類庫:Pagination、Upload、Session...
  helpers/        輔助函數:url_helper、captcha_helper...
  database/       DB 驅動與 Active Record
  language/       語言包

application/      項目代碼(開發重點)
  config/         配置:config.php、database.php、routes.php、autoload.php
  controllers/    控制器
  models/         模型
  views/          視圖
  core/           擴展核心類(MY_Controller 等)
  libraries/      項目類庫
  helpers/        項目輔助函數
  hooks/          鉤子擴展
  third_party/    第三方庫
  logs/           日誌
  cache/          緩存

訪問路徑規則

index.php/控制器/方法/參數1/參數2...

// 新建控制器 application/controllers/Hello.php
class Hello extends CI_Controller {
    public function sayHello($name) {
        echo $name . ", Hello World";
    }
}
// 訪問:index.php/hello/sayHello/Jack

注意:下劃線開頭方法不可直接訪問;僅 public 方法可訪問;避免與類名同名(會被當作構造函數)。

視圖加載與數據傳遞


// 單視圖
$this->load->view('view_test');

// 多視圖組合(自動拼接輸出)
$this->load->vars('title', 'value');  // 單個變量
$data = ['new_title' => '標題', 'list' => $list];
$this->load->vars($data);             // 批量變量
$this->load->view('view_test');
$this->load->view('footer');

URI 參數獲取

public function getUri($id, $name, $year) {
    echo $this->uri->segment(3);  // 獲取第 3 段:id
    echo $this->uri->segment(4);  // name
}

數據庫配置與 AR 模式

application/config/database.php 設置連接參數,注意 dbprefix 與 swap_pre 保持一致。

// 自動加載:application/config/autoload.php
$autoload['libraries'] = ['database'];

// 模型中使用(必須繼承 CI_Model 並調用 parent::__construct())
$this->load->database();

// 原生查詢
$res = $this->db->query($sql);
$res->result();        // 對象數組
$res->result_array();  // 關聯數組
$res->row();           // 第一行對象

// Active Record(需 database.php 中 $active_record = TRUE)
// 查詢
$this->db->get('table');
// 插入
$this->db->insert('table', ['name'=>'lisi', 'password'=>md5('lisi')]);
// 更新
$this->db->update('table', ['name'=>'wangwu'], ['id'=>3]);
// 刪除
$this->db->delete('table', ['id'=>2]);

CI 3.x 版本已將 Active Record 重命名為 Query Builder,語法兼容但建議使用新版文檔規範寫法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved