首頁 後端開發 php教程 CI框架簡單使用方法

CI框架簡單使用方法

Jul 28, 2016 am 08:28 AM
config gt nbsp php this

  1. CodeIgniter框架
  2.  
  3. 1、回憶MVC
  4.  
  5. 1.1M:模型,提供數據,保存數據
  6. 1.2V:視圖,只負責顯示,表單form
  7. 1.3C:控制器,協調模型和視圖
  8. 1.4action:動作,是控制器中的方法,用於被瀏覽器請求
  9. :動作,是控制器中的方法,用於被瀏覽器請求
  10.  
  11. 2CI
  12. CI
  13. CI中的中的 >MVCCI簡介:CodeIgniter是一個輕量級但功能強大的是一個輕量級但功能強大的php框架,基於MVC的設計模式。提供了一套豐富的類庫
  14.  
  15. 2.1、訪問的使用的pathinfo
  16. 2.2、格式:入口檔案/控制器/動作(預設 >pathinfo格式)
  17. 2.3application
  18. application目錄:
  19.  Controllers
  20. 控制器Models
  21. Models
  22. Models
  23. ModelsModels
  24. ModelsModels
  25. ModelsModels> >
  26. Views
  27. 視圖 
  28. 2.4
  29. 、預設的控制器是welcome2.5
  30. 、預設的動作是
  31. index2.6、檔名全部小寫
  32. 33、控制器(
  33. controller
  34. ):
  35. 3.1
  36. 、不需要加上後綴,直接是類別名稱
  37. 、不需要加上後綴,直接是類別名稱.. php3.2、檔名全部小寫,例如
  38. user.
  39. user. user. user
  40. .. php(大寫的檔案名稱瀏覽器不支援)3.3、所有的控制器,直接或間接繼承自 CI_Controller類,類名首字母大寫3.4、方法名不區分大小寫 動作要求:1.必須以public必須以 2.無法下列劃線(_不能以下劃線(_開頭注意!方法名稱與類別名稱相同,會被php當做構造方法(__construct
  41.  4、視圖(view) 4.1
  42. 、在控制器中載入視圖:
  43. $this->$this->>load ->view(“user_add”);//不加裝名4.2
  44. 、在控制器中載入檢視:$this->$this-> load
  45. ->view(“user/
  46. user/user/”);//不加副檔名注意:可以多次呼叫$this->
  47. load->
  48. view(視圖);4.34.3
  49. 4.34.34.3 >、視圖中,直接使用原生php程式碼4.4、在控制器中分配變數:
  50. $this
  51. ->load->vars
  52. (“視圖中變量名”(“視圖中變量名” ,
  53. php
  54. 中變數名稱);
  55.  
  56.  
  57. >$str=abcdefg」;
  58. 」;
  59. $>->load->vars(“strstrstrstr,$str);
  60. 視圖使用:php echo $str; ?> 
  61. 4.5、在控制器中分配多個變數: 例如:$str
  62. abcd」;$list = array= arrayid
  63. ”=>”
  64. 1
  65. ”,”
  66. namename””zhangsan”,”pwd”=>”
  67. 1234
  68. ”);$data[“str”]= $str;$data[“list
  69. ”]
  70. =
  71. $list;
  72. $this
  73. ->
  74. load ->vars($data);
  75.    4.6CI框架會自行解決php中的短標籤 =?>
  76. 4.7、建議使用:php、建議使用:phpphp >foreach(
  77. $listas $key val):?>…php endforeach;?>
  78. 5 、超級對象:當前控制器對象,提供了很多屬性 
  79. 5.1
  80. $this->load屬性5.1
  81. 5.15.15.15.1
  82. 5.15.111、裝載器類的實例 system/
  83. core/Loader.php5.1.5.1.
  84. CI_
  85. Loader提供的方法:$this->load->view()裝載視圖裝載視圖裝載視圖裝載視圖裝載視圖裝載視圖裝載視圖裝載檢視this->load->vars()$this->load->data裝載資料庫操作對象$this->load->load->load->load->load- >model()裝載模型對象$this-> load->helper()幫助對象幫助對象->load->view(「視圖名稱」,$變量名)裝載視圖時分配變量 5.2、 $this->uri屬性
  86. 5.2.1、裝載器類別的實例 system// core/URI.php
  87. php5. >.2CI_URI
  88. 提供的方法:提供的方法:$$this$this$this$this$this$this$this$this$this->uri->Segment(
  89. n
  90. nn用於獲取URL中的第n個參數控制器代表1,動作代表
  91. 2,值1,值1代表>3
  92. ,值
  93. 2代表為4用法1:入口檔案/控制器/動作/值1
  94. /值
  95. 2 echo $this->uri->uri->s
  96. ->(
  97. 3
  98. );
  99. //輸出值1用法2index.
  100. php
  101. /控制器/動作/6
  102. //可以直接取得;參數一定要對應正確publicfunction(function(function($id=0){echo $id;echo $id;; //輸出6}
  103.  
  104. 5.3$this->input屬性
  105. 5.3.1.1、 system/core/Input
  106. .Input.. 5.3.
  107. 2
  108. CI_InputCI_InputCI_Input提供的方法🎜> : $this
  109. ->
  110. input post('username');//$_POST["username"];//$_POST["username"]; $this
  111. ->input->server->server( 🎜>DOCUMENT_ROOT”);//$_SERVER[“DOCUMENT_ROOT”]
  112. $this ->input->server(“REMOTE_ADDRREMOTE_ADDR” >
  113. //客戶端IP
  114. $this->
  115. input
  116. ->
  117. input
  118. ->input
  119. ->
  120. input
  121. ->
  122. input->server(“SERVER_ADDR”);//伺服器端IP//伺服器端IP
  123. 注意:在視圖中,可以直接用$this來訪問超級對像中的屬性 6、存取資料庫
  124.  
  125. 6.1
  126. 6.1、修改檔案:
  127. application
  128. /config/數據🎜>6.2、裝載數據庫操作類:$this->load ->database();
  129. 載入成功後,會放入超級物件的屬性中,預設屬性名稱是db$this->dbdbdbdb
  130. db$query= $this->db->dbdb ->query
  131. (
  132. $sql);//回傳值是物件(array_fetch_object) $sql = $this->db
  133. ->
  134. db->db->db->db->db
  135. ->
  136. db-> 🎜>last_query($sql);//顯示最後一條執行的語句 6.3.
  137. 1$query=$query== this->db->
  138. escape();/此函數會確定數據類型,對字符串類型數據轉義6.4$list= $query->
  139. result();//傳回數組,數組中是一個一個的物件//返回數組,數組中是一個一個的物件 6.5$list= $query
  140. =
  141. $queryresult_array();//返回二維數組,裡面是關聯數組6.6$row= $query
  142. ->row->row->row//傳回第一條數據,直接是一個物件6.7
  143. $row
  144. $row$row
  145. = $query->row_array();
  146. //傳回第一條資料,是一個數組6.8$count= $query= $query=
  147. $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中設定:
  148. $autoload[「libraries」]=」]=」]=
  149. array(“
  150. database”);這樣就不需要 $this----
  151. -
  152. -
  153. -
  154. -----
  155. -
  156. -------- >load->database();
  157. 7.2、參數綁定$name = $this= $this=input->
  158. post(“
  159. name”);name”); $pwd = $this
  160. ->input--post(“pwd”);//使用問號綁定參數
  161. $data[0]=]=] 🎜>;$data[1]
  162. 1]1]1]1]1]1]1]
  163. > $pwd;
  164. //用二維數組傳遞值$sql =$sql =$sql =$sql >“
  165. insertinto ci_user(name, pwd) values (?,?)”;//多問號,需要傳遞索引數組
  166. $bool = $this->db->db->- query
  167. (
  168. $sql,$data);$data););//回傳值是boolean7.3、表前綴配置
  169. /config/database.
  170. php.php中設定:$db['default']['dbprefix']['dbprefix
  171. ']='ci_';
  172. $db >['default
  173. ']['swap_pre']=']
  174. =ci_';配置為一樣,程式碼中,直接寫表前綴後面的名就行了,如果以後項目表前綴發生變化,只需要修改$db['default
  175. ']['
  176. dbprefix']['dbprefix ']='new_',程式碼中
  177. ci_會自動替換為new_ 8、資料庫作業( 🎜>
  178. 模型)
  179. 8.1、設定application
  180. /
  181. database
  182. .
  183. php
  184. = TRUE;
  185. 8.2、在設定檔中,設定檔後,會自動加入8.3、找(get):get):get):
  186. get
  187. ):get >$res =
  188. $this
  189. ->
  190. db
  191. ->db->db-> >
  192. ('表名');
  193. //返回結果集對象$list =
  194. $res
  195. ->result();//傳回數組,數組中是一個的物件 $list = $res
  196. ->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[「資料庫欄位名稱」]=值;值;值;= array(“id”=>”4”);
  197. $res = $this->db->db->db->db->->update
  198. (「資料表名」,$data,$where);
  199. //回傳結果boolean;
  200. 8.6、刪除(delete):delete):delete
  201. ):
  202. $where = array(“ididid4
  203. ”);
  204. $res
  205. = $this ->db
  206. ->
  207. dalete
  208. (「資料表名」,
  209. $where);//回傳結果boolean; 99 AR的連貫操作
  210.  
  211. 9.19.19.1
  212. 9.19.19.1$res= $this->
  213. db
  214. ->db->db->db
  215. ->
  216. db->db->db->("id,name"
  217. )
  218. //找到的欄位->
  219. ->
  220. ->->->->->from(
  221. "user"
  222. )//資料表名->
  223. where(
  224. "id >",3
  225. )//條件 id與>之間必須要有空格->order_by("id desc")//排序->limit(limit(
  226. 3,1)//分頁;表示跳過1條,取3條,與tp相反 ->get();//取得資料//取得資料$ list = $res
  227. ->result_array();( 🎜>9.2where()條件條件符:「>」、「>=」、 「1、只有單一條件時數:9.2.
  228. 1
  229. 1$res = $this->db->whereget();例如:$res例如:
  230. $res
  231. 例如:$res例如:$res
  232. 例如:
  233. $res例如:$res例如:$res = $this->db->where(“name”,”admin”)->get();
  234. //自動會加上“=”9.2.2$res= $this->db->db->(“字段=”,”值”)->get();();例如:$res= $this
  235. ->db->db->-db->--where(“name=”,”admin”)->admin”)-> get
  236. ();
  237. //必須要有空格2、有多個條件時:用
  238. 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連接查詢
  239. 9.3.1、預設為左查詢(left join on
  240. $this-$this->- db->
  241. select
  242. (「欄位」)->
  243. ->(「資料表名」)->join('連接表'
  244. ,'連接條件')->get ();    
  245. //預設為左詢問(left join … on) 例如:$this->db
  246. ->select(“*”)->from
  247. ->from("user”)->join('category ', user.id
  248. = category
=
  1. categoryid
  2. )//預設為左查詢(left join )
  3. ->get();
  4. 9.3.2、透過join()第三個可透過join()第三個可透過join()第三個可透過join()第三個可選參數選擇連接,可選參數包括:left、 right、outer、 inner、left outer、right outer
  5. 例如:
  6. $ this->db->select(“*”)
  7. ->from(“user”)
  8. ->join(“category ”, “user.id = category.id”,”left”)//透過第三個參數指定
  9. ->get();
  10. 10、擴充CI控制器
  11.  
  12. 10.1、擴充控制器
  13. 10.1、擴充控制器
  14. 1.在application/core新建一個自己的控制器(MY_Controller),新建的控制器繼承CI_Controller類,可以從自己建立的控制器中進行擴充。
  15. 例如:class MY_Controller extends CI_Controller{
  16. Public function __consreuct(){
  17. Public function __consreuct(){
  18. Public function __consreuct(){
  19. ::__construct(); //呼叫父類別的建構方法
  20. //登陸驗證//權限驗證}}2、讓welcome.php繼承自己創建的控制器(MY_Controller),MY_Controller),間接繼承CI_Controller。
  21. 3、控制器前綴可以修改
  22. 在application/config/config.php中修改:
  23. $config['subclass_prefix'] = 'MY_'; 
  24. 11、模型(model)
  25. 11.1、模型檔案命名:user_model.php 、category_model.php,檔案名稱小寫
  26. 建議:模型檔案名稱使用_model為後綴,防止與控制器類別名稱衝突!
  27. 11.2、所有的模型,直接或間接繼承自CI_Model類,類名首字母大寫
  28. 11.3、裡面創建所需要的方法:getAll()…
  29. 11.4、控制器中載入模型:$this->load->model(“模型檔名”); //不加字尾
  30. 11.5、控制器中載入模型時起別名:$this->load->model(“模型檔名”,”別名”);
  31. 載入成功後,會放入超級物件的屬性中,預設屬性名稱是模型檔案名稱或別名
  32. 11.6、控制器中呼叫模型,取得資料:$this- >模型檔名->方法名稱();
  33. 例如:$this->load->model(“User_model”); //注意大小寫
  34. $this->User_model->getAll(); //呼叫模型,取得資料
  35. 11.6.1、控制器中呼叫模型,取得資料:$ this->別名->方法名稱();
  36. 例如:$this->load->model(“User_model”,”user”); //注意大小寫
  37. $this->user->getAll(); //呼叫模型,取得資料
  38. 12、CI中url相關函數
  39. 12.1、載入輔助函數:$this->load->helper(“url”);
  40. 設定自動載入輔助函數:在application/ config/autoload.php中配置
  41. $autoload['helper'] = array('url');
  42. 就不用寫$this->load->helper(“url”);
  43. 輔助函數:
  44. site_url(“控制器/動作/參數”) ; //處理url及參數
  45. 在視圖中使用 php echo site_url(“控制器/動作/參數”)?>
  46. base_url();//返回網站的根目錄(“ci/”);
  47. 13、CI中的路由與偽靜態、隱藏index.php入口檔案
  48. 13.1、路由設定
  49.  
  50. 在application/config/routes.php中設置/修改:
  51.  
  52. $route['default_controller'] = "welcome"; //默認的控制器為welcome
  53.  
  54. 13.2、偽靜態設定
  55. 在application/config/routes.php中設定/修改:
  56. //正則匹配(控制器/)
  57. $route['news/[d]{6}/([dw]+).html '] = 'user/show/$1
  58. ';
  59. $1
  60. ';
  61. $1
  62. ';
  63. http://localhost/CI/index.php/news/201401/caolizhi66.html
  64. 將動作news中的參數路由到user/show/ $1
  65.  
  66. 13.3、隱藏入口文件index.php
  67. 開啟🎜>13.3. apache設定檔:LoadModule rewrite_module modules/mod_rewrite.so
  68. 13.3.2、在入口檔案統計目錄中,建立一個.htaccess文件,內容如下:
  69. RewriteEngine on //啟用偽靜態
  70. RewQUEfond % //符合不存在的目錄
  71. RewriteCond %{REQUEST_FILENAME} !-f //符合不存在的檔案
  72. Rewrite *)$ index.php/$1 [QSA,PT,L] //重寫規則
  73.  
  74. 這樣就不用寫入口文件index.php了
  75.  
  76. 14、CI中的分頁
  77. $this->load->library('pagination
  78. ');
  79. ');
  80. ');
  81. 1 $config['
  82. base_url
  83. '] = $url;
  84. 2 /* 分頁的基礎L2 /* 分頁的基礎L
  85. 3 如果你想用a、b的連結形式,則該url應該形式如/news/page/ 4 如果連結是c、d的形式,則url應該如/news? 5 */ 6 $config['total_rows'] = $total;//記錄總數,這個沒什麼好說的了,就是你從資料庫取得記錄總數7 $config['per_page '] = $pagesize; //每頁條數。額,這個也沒什麼好說的。 。自己設定。預設為10好像。
  86. 8 $config['page_query_string'] = TRUE;
  87. /傳參形式。開啟true則會自動在你的url後面加上&per_page=3。 (這個per_page是預設的查詢字符,當然也可以用$config['query_string_segment']自己設定)
  88. 10 因此c、d中的形式一般是為localhost/news?&per_page=2不過都一樣,沒什麼影響。 get的per_page還是3
  89. 11 */
  90. 12 $config['first_link12 $config['first_link首頁'; // 第一頁顯示
  91. 13 $config['last_link'] = '末頁'; // 最後一頁顯示
  92. 14 $config['next_link'] = '下一頁'] = '下一頁
  93. >'; // 下一頁顯示15 $config['prev_link'] = '
  94. '] = '上一頁'; // 上一頁顯示16 $config['cur_tag_open'] = '
  95. aclass="current">'; // 目前頁面開始樣式17 $config['cur_tag_close'] = ''] = '
  96. '] = '
  97. /a
  98. >
  99. ';>';
  100. 18 /*目前頁結束樣式。這些你可以自己試試看。 19比如說我想讓當前頁的分頁數字樣式好看一點,紅色字體等。你就可以在current上加上css代碼代碼20
  101. */21 $config['21 $config[''] = 2;//目前連線前後顯示頁碼個數。意思是說你目前頁是第5頁,那你可以看到3
  102. 4
  103. 56
  104. 7
  105. 7頁。 22 $config[' uri_segment']=
  106. 4=4

23

/*這個是你在用a)、b)連結樣式的時候,用來判斷頁頁數。 24 例如localhost/news/page/3 這個uri_segment就要設定為3。 localhost/news/title/page/3這個就要設定為425 */26 $config['use_page_numbers']= TRUE;; 27/*這個就是a)、b)的差別了。開啟了,page就會表示頁數。 false就會表示記錄數 以上就介紹了 CI框架簡單使用方法,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

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

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

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

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

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

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

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

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

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

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

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

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

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

See all articles