CI框架簡單使用方法
- CodeIgniter框架
- 1、回憶MVC
- 1.1、M:模型,提供數據,保存數據
- 1.2、V:視圖,只負責顯示,表單form
- 1.3、C:控制器,協調模型和視圖
- 1.4、action:動作,是控制器中的方法,用於被瀏覽器請求 :動作,是控制器中的方法,用於被瀏覽器請求
- 2、CI、 CI
- 、CI中的中的 >MVCCI簡介:CodeIgniter是一個輕量級但功能強大的是一個輕量級但功能強大的php框架,基於MVC的設計模式。提供了一套豐富的類庫
- 2.1、訪問的使用的pathinfo
- 2.2、格式:入口檔案/控制器/動作(預設 >pathinfo格式)
- 2.3、application、
- application目錄:
- Controllers
- 控制器Models
- Models
- Models
- ModelsModels
- ModelsModels
- ModelsModels> >
- Views
- 視圖 2.4
- 、預設的控制器是welcome2.5 、預設的動作是
- index2.6、檔名全部小寫
- 33、控制器( controller
- ): 3.1
- 、不需要加上後綴,直接是類別名稱
- 、不需要加上後綴,直接是類別名稱.. php3.2、檔名全部小寫,例如
- user.
- user. user. user
- .. php(大寫的檔案名稱瀏覽器不支援)3.3、所有的控制器,直接或間接繼承自 CI_Controller類,類名首字母大寫3.4、方法名不區分大小寫 動作要求:1.必須以public必須以 2.無法下列劃線(_不能以下劃線(_開頭注意!方法名稱與類別名稱相同,會被php當做構造方法(__construct)
- )
- )) )
- )
- 4、視圖(view) 4.1 、在控制器中載入視圖:
- $this->$this->>load ->view(“user_add”);//不加裝名4.2
- 、在控制器中載入檢視:$this->$this-> load
- ->view(“user/
- user/user/”);//不加副檔名注意:可以多次呼叫$this->
- load->
- view(視圖);4.34.3
- 4.34.34.3 >、視圖中,直接使用原生php程式碼4.4、在控制器中分配變數: $this
- ->load->vars (“視圖中變量名”(“視圖中變量名” ,
- php 中變數名稱);
- >$str=「abcdefg」; 」;
-
$>
-> load->vars(“str”str”str”str”,$str); - 視圖使用:php echo $str; ?>
- 4.5、在控制器中分配多個變數: 例如:$str
- abcd」;$list = array= arrayid ”=>”
- 1 ”,”
- name”name””zhangsan”,”pwd”=>” 1234
- ”);” $data[“str”]= $str;$data[“list ”]
- =
- $list;
- $this ->
- load ->vars($data);
- 4.6、CI框架會自行解決php中的短標籤 =…?>
- 4.7、建議使用:php、建議使用:phpphp >foreach(
- $listas $key val):?>…php endforeach;?>
- 5 、超級對象:當前控制器對象,提供了很多屬性 5.1
- 、$this->load屬性5.1
- 5.15.15.15.1
- 5.15.111、裝載器類的實例 system/
- core/Loader.php5.1.5.1.
- 、CI_ Loader提供的方法:$this->load->view()裝載視圖裝載視圖裝載視圖裝載視圖裝載視圖裝載視圖裝載視圖裝載檢視this->load->vars()$this->load->data裝載資料庫操作對象$this->load->load->load->load->load- >model()裝載模型對象$this-> load->helper()幫助對象幫助對象
- 5.2.1、裝載器類別的實例 system// core/URI.php
- php5. >.2、CI_URI
- 提供的方法:提供的方法:$$this$this$this$this$this$this$this$this$this->uri->Segment( n
- nn用於獲取URL中的第n個參數控制器代表1,動作代表
- 2,值1,值1代表>3 ,值
- 2代表為4…用法1:入口檔案/控制器/動作/值1 /值
- 2 echo $this->uri->uri->s ->(
- 3 );
- //輸出值1用法2:index. php
- /控制器/動作/6
- //可以直接取得;參數一定要對應正確publicfunction(function(function($id=0){echo $id;echo $id;; //輸出6}
- 5.3、$this->input屬性
- 5.3.1.1、、 system/core/Input
- .Input.. 5.3.
- 2、
- CI_Input、CI_Input、CI_Input提供的方法🎜> : $this ->
- input post('username');//$_POST["username"];//$_POST["username"]; $this
- ->input->server->server( 🎜>DOCUMENT_ROOT”);//$_SERVER[“DOCUMENT_ROOT”]
- $this ->input->server(“REMOTE_ADDRREMOTE_ADDR” > //客戶端IP
- $this-> input
- -> input
- ->input ->
- input ->
- input->server(“SERVER_ADDR”);//伺服器端IP//伺服器端IP
- 注意:在視圖中,可以直接用$this來訪問超級對像中的屬性 6、存取資料庫
- 6.1
- 6.1、修改檔案: application
- /config/數據🎜>6.2、裝載數據庫操作類:$this->load ->database();
- 載入成功後,會放入超級物件的屬性中,預設屬性名稱是db$this->dbdbdbdb
- db、$query= $this->db->dbdb ->query (
- $sql);//回傳值是物件(array_fetch_object) $sql = $this->db ->
- db->db->db->db->db ->
- db-> 🎜>last_query($sql);//顯示最後一條執行的語句 6.3.
- 1、$query=$query== this->db->
- escape();/此函數會確定數據類型,對字符串類型數據轉義6.4、$list= $query->
- result();//傳回數組,數組中是一個一個的物件//返回數組,數組中是一個一個的物件 6.5、$list= $query =
- $queryresult_array();//返回二維數組,裡面是關聯數組6.6 、$row= $query
- ->row->row->row//傳回第一條數據,直接是一個物件6.7、
- $row、
- $row、$row
- = $query->row_array();
- //傳回第一條資料,是一個數組6.8、$count= $query= $query= $querynum_rows();//返回結果集的行數6.9 、$field= $query->num_fields >//回傳請求的欄位數6.10、$count=$count== 🎜> $query->affected_rows();//返回受影響的行數6.11、$id= $query-> $query->🎜> ();//返回自增ID 7、數據庫中的配置7.1、自動加載db:在application/config/loadtoload/autoload/ >php中設定:
- $autoload[「libraries」]=」]=」]= array(“
- database”);這樣就不需要 $this---- -
- - -
- ----- -
- -------- >load->database();
- 7.2、參數綁定$name = $this= $this=input->
- post(“
- name”);name”); $pwd = $this
- ->input--post(“pwd”);//使用問號綁定參數
- $data[0]=]=] 🎜>;$data[1]
- 1]1]1]1]1]1]1]
- > $pwd;
- //用二維數組傳遞值$sql =$sql =$sql =$sql >“
- insertinto ci_user(name, pwd) values (?,?)”;//多問號,需要傳遞索引數組
- $bool = $this->db->db->- query (
- $sql,$data);$data););//回傳值是boolean7.3、表前綴配置在
- 在
- /config/database.
- php.php中設定:$db['default']['dbprefix']['dbprefix
- ']='ci_';
- $db >['default
- ']['swap_pre']=']
- =ci_';配置為一樣,程式碼中,直接寫表前綴後面的名就行了,如果以後項目表前綴發生變化,只需要修改$db['default ']['
- dbprefix']['dbprefix ']='new_',程式碼中
- ci_會自動替換為new_ 8、資料庫作業( 🎜> 模型)
- 8.1、設定application /
- database .
- php中中 中
- = TRUE;
- 8.2、在設定檔中,設定檔後,會自動加入8.3、找(get):get):get): get
- ):get >$res = $this
- -> db
- ->db->db-> > ('表名');
- //返回結果集對象$list = $res
- ->result();//傳回數組,數組中是一個的物件 $list = $res ->result_array(); //回傳二維數組,裡面是關聯數組8.4、插入(insertinsertinsertinsert ://數據使用關聯數組$data[“數據庫字段名”]=值;//$this->input->post(“名稱”);$data$data$data$data [「資料庫欄位名稱」]=值;$res =$res =$res =$res =$res $this->db->insert(「資料表名」,insert(「資料表名」, $data);//回傳結果boolean;8.5、修改( update)://數據使用關聯數組$data [“資料庫欄位名稱”]=值;//$this->input->post(“name”); $data[「資料庫欄位名稱」]=值;值;值;
- $res = $this->db->db->db->db->->update
- (「資料表名」,$data,$where); //回傳結果boolean;
- 8.6、刪除(delete):delete):delete ):
- $where = array(“id”id”id4 ”);
- $res
- = $this ->db ->
- dalete (「資料表名」,
- $where);//回傳結果boolean; 99、、 AR的連貫操作
- 9.19.19.1
- 9.19.19.1$res= $this-> db
- ->db->db->db ->
- db->db->db->("id,name" )
- //找到的欄位-> ->
- ->->->->->from( "user"
- )//資料表名->
- where(
- "id >",3
- )//條件 id與>之間必須要有空格->order_by("id desc")//排序->limit(limit(
- 3,1)//分頁;表示跳過1條,取3條,與tp相反 ->get();//取得資料//取得資料$ list = $res
- ->result_array();( 🎜>9.2、where()條件條件符:「>」、「>=」、 「1、只有單一條件時數:9.2. 1
- 、1、$res = $this->db->whereget();例如:$res例如: $res
- 例如:$res例如:$res 例如:
- $res例如:$res例如:$res = $this->db->where(“name”,”admin”)->get();
- //自動會加上“=”9.2.2、$res= $this->db->db->(“字段=”,”值”)->get();();例如:$res= $this
- ->db->db->-db->--where(“name=”,”admin”)->admin”)-> get ();
- //必須要有空格2、有多個條件時:用 array()9.2.3 、$res= $this->db->db->- where(array(“字段”=>”值”,“字段”=>”值”))) ->get();例如:$res= $this->db->where(array( 🎜>(“name”=>”admin”,“”,“”,““id>3”=>”2”))->”))->get();9.2.4.4、複雜的語句使用、複雜的語句使用、複雜的語句使用$this->db->query(query( >$sql,$data);//使用問號綁定參數//使用問號綁定參數9.3、join連接查詢
- 9.3.1、預設為左查詢(left join … on)
- $this-$this->- db-> select
- (「欄位」)->
- ->(「資料表名」)->join('連接表'
- ,'連接條件')->get ();
- //預設為左詢問(left join … on) 例如:$this->db
- ->select(“*”)->from
- ->from("user”)->join('category ', user.id
- = category
- categoryid
- )//預設為左查詢(left join )
- ->get();
- 9.3.2、透過join()第三個可透過join()第三個可透過join()第三個可透過join()第三個可選參數選擇連接,可選參數包括:left、 right、outer、 inner、left outer、right outer
- 例如:
- $ this->db->select(“*”)
- ->from(“user”)
- ->join(“category ”, “user.id = category.id”,”left”)//透過第三個參數指定
- ->get();
- 10、擴充CI控制器
- 10.1、擴充控制器
- 10.1、擴充控制器
- 1.在application/core新建一個自己的控制器(MY_Controller),新建的控制器繼承CI_Controller類,可以從自己建立的控制器中進行擴充。
- 例如:class MY_Controller extends CI_Controller{
- Public function __consreuct(){ Public function __consreuct(){
- Public function __consreuct(){ ::__construct(); //呼叫父類別的建構方法
- //登陸驗證//權限驗證}}2、讓welcome.php繼承自己創建的控制器(MY_Controller),MY_Controller),間接繼承CI_Controller。
- 3、控制器前綴可以修改
- 在application/config/config.php中修改:
- $config['subclass_prefix'] = 'MY_';
- 11、模型(model)
- 11.1、模型檔案命名:user_model.php 、category_model.php,檔案名稱小寫
- 建議:模型檔案名稱使用_model為後綴,防止與控制器類別名稱衝突!
- 11.2、所有的模型,直接或間接繼承自CI_Model類,類名首字母大寫
- 11.3、裡面創建所需要的方法:getAll()…
- 11.4、控制器中載入模型:$this->load->model(“模型檔名”); //不加字尾
- 11.5、控制器中載入模型時起別名:$this->load->model(“模型檔名”,”別名”);
- 載入成功後,會放入超級物件的屬性中,預設屬性名稱是模型檔案名稱或別名
- 11.6、控制器中呼叫模型,取得資料:$this- >模型檔名->方法名稱();
- 例如:$this->load->model(“User_model”); //注意大小寫
- $this->User_model->getAll(); //呼叫模型,取得資料
- 11.6.1、控制器中呼叫模型,取得資料:$ this->別名->方法名稱();
- 例如:$this->load->model(“User_model”,”user”); //注意大小寫
- $this->user->getAll(); //呼叫模型,取得資料
- 12、CI中url相關函數
- 12.1、載入輔助函數:$this->load->helper(“url”);
- 設定自動載入輔助函數:在application/ config/autoload.php中配置
- $autoload['helper'] = array('url');
- 就不用寫$this->load->helper(“url”);
- 輔助函數:
- site_url(“控制器/動作/參數”) ; //處理url及參數
- 在視圖中使用 php echo site_url(“控制器/動作/參數”)?>
- base_url();//返回網站的根目錄(“ci/”);
- 13、CI中的路由與偽靜態、隱藏index.php入口檔案
- 13.1、路由設定
- 在application/config/routes.php中設置/修改:
- $route['default_controller'] = "welcome"; //默認的控制器為welcome
- 13.2、偽靜態設定
- 在application/config/routes.php中設定/修改:
- //正則匹配(控制器/)
- $route['news/[d]{6}/([dw]+).html '] = 'user/show/$1 ';
- $1 ';
- $1 ';
- http://localhost/CI/index.php/news/201401/caolizhi66.html
- 將動作news中的參數路由到user/show/ $1
- 13.3、隱藏入口文件index.php
- 開啟🎜>13.3. apache設定檔:LoadModule rewrite_module modules/mod_rewrite.so
- 13.3.2、在入口檔案統計目錄中,建立一個.htaccess文件,內容如下:
- RewriteEngine on //啟用偽靜態
- RewQUEfond % //符合不存在的目錄
- RewriteCond %{REQUEST_FILENAME} !-f //符合不存在的檔案
- Rewrite *)$ index.php/$1 [QSA,PT,L] //重寫規則
- 這樣就不用寫入口文件index.php了
- 14、CI中的分頁
- $this->load->library('pagination ');
- ');
- ');
- 1 $config['
- base_url '] = $url;
- 2 /* 分頁的基礎L2 /* 分頁的基礎L
- 3 如果你想用a、b的連結形式,則該url應該形式如/news/page/ 4 如果連結是c、d的形式,則url應該如/news? 5 */ 6 $config['total_rows'] = $total;//記錄總數,這個沒什麼好說的了,就是你從資料庫取得記錄總數7 $config['per_page '] = $pagesize; //每頁條數。額,這個也沒什麼好說的。 。自己設定。預設為10好像。
- 8 $config['page_query_string'] = TRUE;
- /傳參形式。開啟true則會自動在你的url後面加上&per_page=3。 (這個per_page是預設的查詢字符,當然也可以用$config['query_string_segment']自己設定)
- 10 因此c、d中的形式一般是為localhost/news?&per_page=2不過都一樣,沒什麼影響。 get的per_page還是3
- 11 */
- 12 $config['first_link12 $config['first_link首頁'; // 第一頁顯示
- 13 $config['last_link'] = '末頁'; // 最後一頁顯示
- 14 $config['next_link'] = '下一頁'] = '下一頁
- >'; // 下一頁顯示15 $config['prev_link'] = '
- '] = '上一頁'; // 上一頁顯示16 $config['cur_tag_open'] = ' aclass="current">'; // 目前頁面開始樣式17 $config['cur_tag_close'] = ''] = '
- '] = '
- /a >
- ';>';
- 18 /*目前頁結束樣式。這些你可以自己試試看。 19比如說我想讓當前頁的分頁數字樣式好看一點,紅色字體等。你就可以在current上加上css代碼代碼20
- */21 $config['21 $config[''] = 2;//目前連線前後顯示頁碼個數。意思是說你目前頁是第5頁,那你可以看到3
- 、4、
- 5、6
- 、7、
- 7頁。 22 $config[' uri_segment']=
- 4=4

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。
