Maison développement back-end tutoriel 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. 2CI中的MVC
  11. CI简介:CodeIgniter是一个轻量级但功能强大的php框架,基于MVC的设计模式。提供了一套丰富的类库
  12.  
  13. 2.1、访问的url使用的pathinfo
  14. 2.2、格式:入口文件/控制器/动作(默认pathinfo格式)
  15. 2.3application目录:
  16.  
  17. Controllers控制器
  18. Models模型
  19. Views视图
  20.  
  21. 2.4、默认的控制器是welcome
  22. 2.5、默认的动作是index
  23. 2.6、文件名全部小写
  24. 3、控制器(controller):
  25. 3.1、不需要加后缀,直接是类名.php
  26. 3.2、文件名全部小写,例如 user.php(大写的文件名浏览器不支持)
  27. 3.3、所有的控制器,直接或间接继承自CI_Controller类,类名首字母大写
  28. 3.4、方法名不区分大小写
  29.  
  30. 动作要求:1.必须以public开头
  31.  
  32. 2.不能以下划线(_)开头
  33. 注意!方法名与类名相同,会被php当做构造方法(__construct
  34.  
  35. 4、视图(view)
  36.  
  37. 4.1、在控制器中加载视图:$this->load->view(“user_add”);//不加扩展名
  38. 4.2、在控制器中加载视图:$this->load->view(“user/add”);//不加扩展名
  39. 注意:可以多次调用$this->load->view(视图);
  40. 4.3、视图中,直接使用原生php代码
  41. 4.4、在控制器中分配变量:$this->load->vars(“视图中变量名”,php中变量名);
  42.  
  43. 例如:$str=abcdefg”;
  44. $this->load->vars(“str”,$str);
  45. 视图中使用:php echo $str;?>
  46.  
  47. 4.5、在控制器中分配多个变量:
  48.  
  49. 例如:$str=abcd”;
  50. $list = array(“id”=>”1”,”name”=>”zhangsan”,”pwd”=>”1234”);
  51. $data[“str”]= $str;
  52. $data[“list”]= $list;
  53. $this->load->vars($data);
  54.  
  55. 4.6CI框架会自己解决php中的短标签=?>
  56. 4.7、推荐使用:phpforeach($listas $key=>$val):?>…php endforeach;?>
  57. 5、超级对象:当前控制器对象,提供了很多属性
  58.  
  59. 5.1$this->load属性
  60. 5.1.1、装载器类的实例 system/core/Loader.php
  61. 5.1.2CI_Loader提供的方法:
  62. $this->load->view()装载视图
  63. $this->load->vars()分配变量到视图
  64. $this->load->database()装载数据库操作对象
  65. $this->load->model()装载模型对象
  66. $this->load->helper()帮助对象
  67. $this->load->view(“视图名”,$变量名)装载视图时分配变量
  68.  
  69. 5.2$this->uri属性
  70. 5.2.1、装载器类的实例 system/core/URI.php
  71. 5.2.2CI_URI提供的方法:
  72. $this->uri->Segment(n)用于获取URL中的第n个参数
  73. 控制器代表1,动作代表2,值1代表3,值2代表为4
  74. 用法1:入口文件/控制器/动作/值1/值2
  75. echo $this->uri->segment(3);//输出值1
  76. 用法2index.php/控制器/动作/6
  77. //可以直接获取;参数一定要对应正确
  78. publicfunction($id=0){
  79. echo $id;//输出6
  80. }
  81.  
  82. 5.3$this->input属性
  83. 5.3.1、装载器类的实例 system/core/Input.php
  84. 5.3.2CI_Input提供的方法:
  85.  
  86. $this->input->post(‘username’);//$_POST[“username”];
  87. $this->input->server(“DOCUMENT_ROOT”);//$_SERVER[“DOCUMENT_ROOT”]
  88. $this->input->server(“REMOTE_ADDR”);//客户端IP
  89. $this->input->server(“SERVER_ADDR”);//服务器端IP
  90. 注意:在视图中,可以直接用$this来访问超级对象中的属性
  91.  
  92. 6、访问数据库
  93.  
  94. 6.1、修改配置文件:application/config/database.php
  95. 6.2、装载数据库操作类:$this->load->database();
  96. 加载成功后,会放入超级对象的属性中,默认属性名是db
  97. $this->db
  98. 6.3$query= $this->db->query($sql);//返回值是对象(array_fetch_object)
  99. $sql = $this->db->last_query($sql);//显示最后一条执行的sql语句
  100. 6.3.1$query= $this->db->escape();//此函数会确定数据类型,对字符串类型数据转义
  101. 6.4$list= $query->result();//返回数组,数组中是一个一个的对象
  102. 6.5$list= $query->result_array();//返回二维数组,里面是关联数组
  103. 6.6$row= $query->row();//返回第一条数据,直接是一个对象
  104. 6.7$row= $query->row_array();//返回第一条数据,是一个数组
  105. 6.8$count= $query->num_rows();//返回结果集的行数
  106. 6.9$field= $query->num_fields();//返回请求的字段数
  107. 6.10$count= $query->affected_rows();//返回受影响的行数
  108. 6.11$id= $query->insert_id();//返回自增ID
  109.  
  110. 7、数据库中的配置
  111. 7.1、自动加载db
  112. application/config/autoload.php中配置:
  113. $autoload[“libraries”]= array(“database”);
  114. 这样就不需要 $this->load->database();
  115. 7.2、参数绑定
  116. $name = $this->input->post(“name”);
  117. $pwd = $this->input->post(“pwd”);
  118. //使用问号绑定参数
  119. $data[0]= $name;
  120. $data[1]= $pwd;//用二维数组传递值
  121. $sql =insertinto ci_user(name,pwd) values (?,?)”;//多个问号,需要传一个索引数组
  122. $bool = $this->db->query($sql,$data);//返回值是boolean
  123. 7.3、表前缀配置
  124. application/config/database.php中配置:
  125. $db[‘default’][‘dbprefix’]=ci_’;
  126. $db[‘default’][‘swap_pre’]=ci_’;
  127. 配置为一样,代码中,直接编写表前缀后面的名就行了,如果以后项目表前缀发生变化,只需要修改$db[‘default’][‘dbprefix’]=new_’,代码中ci_会自动替换为new_
  128.  
  129. 8、数据库操作(AR模型)
  130. 8.1、配置application/cinfig/database.php
  131. $active_record = TRUE;
  132. 8.2、在配置文件中,配置表前缀后,会自动添加
  133. 8.3、查找(get):
  134. $res = $this->db->get(‘表名’);//返回结果集对象
  135. $list = $res->result();//返回数组,数组中是一个一个的对象
  136. $list = $res->result_array();//返回二维数组,里面是关联数组
  137. 8.4、插入(insert):
  138. //数据使用关联数组
  139. $data[“数据库字段名”]=值;//$this->input->post(“name”);
  140. $data[“数据库字段名”]=值;
  141. $res = $this->db->insert(“数据表名”,$data);//返回结果boolean;
  142. 8.5、修改(update):
  143. //数据使用关联数组
  144. $data[“数据库字段名”]=值;//$this->input->post(“name”);
  145. $data[“数据库字段名”]=值;
  146. $where = array(“id”=>”4”);
  147. $res = $this->db->update(“数据表名”,$data,$where);//返回结果boolean;
  148. 8.6、删除(delete):
  149. $where = array(“id”=>”4”);
  150. $res = $this->db->dalete(“数据表名”, $where);//返回结果boolean;
  151.  
  152. 9AR的连贯操作
  153.  
  154. 9.1$res= $this->db->select("id,name")//查找的字段
  155. ->from("user")//数据表名
  156. ->where("id >",3)//条件 id与>之间必须要有空格
  157. ->order_by("id desc")//排序
  158. ->limit(3,1)//分页;表示跳过1条,取3条,与tp相反
  159. ->get();//获取数据
  160. $list = $res->result_array();
  161. 9.2where()条件
  162. 条件符:“>”、“>=”、“
  163. 1、只有单个条件时:
  164. 9.2.1$res= $this->db->where(“字段”,”值”)->get();
  165. 例如:$res= $this->db->where(“name”,”admin”)->get();//自动会加上“=”
  166. 9.2.2$res= $this->db->where(“字段=”,”值”)->get();
  167. 例如:$res= $this->db->where(“name=”,”admin”)->get();//必须要有空格
  168. 2、有多个条件时:用array()
  169. 9.2.3$res= $this->db->where(array(“字段”=>”值”,“字段”=>”值”))->get();
  170. 例如:$res= $this->db->where(array(“name”=>”admin”,id>3”=>”2”))->get();
  171. 9.2.4、复杂的查询语句使用$this->db->query($sql,$data);//使用问号绑定参数
  172. 9.3join连接查询
  173. 9.3.1、默认为左查询(left join on
  174. $this->db->select(“字段”)
  175. ->from(“数据表名”)
  176. ->join('连接表','连接条件')
  177. ->get();    //默认为左查询(left join … on) 例如:
  178. $this->db->select(“*”)
  179. ->from(“user”)
  180. ->join('category', user.id= category.id)//默认为左查询(left join )
  181. ->get();
  1. 9.3.2、通过join()第三个可选参数选择连接,可选参数包括:left、 right、outer、 inner、left outer、right outer
  2. 例如:
  3. $this->db->select(“*”)
  4. ->from(“user”)
  5. ->join(“category”, “user.id = category.id”,”left”)//通过第三个参数指定
  6. ->get();
  7. 10、扩展CI控制器
  8.  
  9. 10.1、扩展控制器
  10. 1、在application/core新建一个自己的控制器(MY_Controller),新建的控制器继承CI_Controller类,可以从自己创建的控制器中进行扩展。
  11. 例如:class MY_Controller extends CI_Controller{
  12. Public function __consreuct(){
  13. Parent::__construct(); //调用父类的构造方法
  14. //登陆验证
  15. //权限验证
  16. }
  17. }
  18. 2、让welcome.php继承自己创建的控制器(MY_Controller),间接继承CI_Controller。
  19. 3、控制器前缀可以修改
  20. 在application/config/config.php中修改:
  21. $config['subclass_prefix'] = 'MY_'; 
  22. 11、模型(model)
  23. 11.1、模型文件命名:user_model.php 、category_model.php,文件名小写
  24. 建议:模型文件名使用_model为后缀,防止与控制器类名冲突!
  25. 11.2、所有的模型,直接或间接继承自CI_Model类,类名首字母大写
  26. 11.3、里面创建所需要的方法:getAll()…
  27. 11.4、控制器中加载模型:$this->load->model(“模型文件名”); //不加后缀
  28. 11.5、控制器中加载模型时起别名:$this->load->model(“模型文件名”,”别名”);
  29. 加载成功后,会放入超级对象的属性中,默认属性名是模型文件名或别名
  30. 11.6、控制器中调用模型,获取数据:$this->模型文件名->方法名();
  31. 例如:$this->load->model(“User_model”); //注意大小写
  32. $this->User_model->getAll(); //调用模型,获取数据
  33. 11.6.1、控制器中调用模型,获取数据:$this->别名->方法名();
  34. 例如:$this->load->model(“User_model”,”user”); //注意大小写
  35. $this->user->getAll(); //调用模型,获取数据
  36. 12、CI中url相关函数
  37. 12.1、加载辅助函数:$this->load->helper(“url”);
  38. 配置自动加载辅助函数:在application/config/autoload.php中配置
  39. $autoload['helper'] = array('url');
  40. 就不用写$this->load->helper(“url”);
  41. 辅助函数:
  42. site_url(“控制器/动作/参数”) ; //处理url及参数
  43. 在视图中使用
  44. base_url();//返回网站的根目录(“ci/”);
  45. 13、CI中的路由与伪静态、隐藏index.php入口文件
  46. 13.1、路由设置
  47.  
  48. 在application/config/routes.php中设置/修改:
  49.  
  50. $route['default_controller'] = "welcome"; //默认的控制器为welcome
  51.  
  52. 13.2、伪静态设置
  53. 在application/config/routes.php中设置/修改:
  54. //正则匹配(控制器/)
  55. $route['news/[\d]{6}/([\d\w]+)\.html'] = 'user/show/$1';
  56. http://localhost/CI/index.php/news/201401/caolizhi66.html
  57. 将动作news中的参数路由到user/show/$1
  58.  
  59. 13.3、隐藏入口文件index.php
  60. 13.3.1、开启apache配置文件:LoadModule rewrite_module modules/mod_rewrite.so
  61. 13.3.2、在入口文件统计目录中,创建一个.htaccess文件,内容如下:
  62. RewriteEngine on //启用伪静态
  63. RewriteCond %{REQUEST_FILENAME} !-d //匹配不存在的目录
  64. RewriteCond %{REQUEST_FILENAME} !-f //匹配不存在的文件
  65. RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] //重写规则
  66.  
  67. 这样就不用写入口文件index.php了
  68.  
  69. 14、CI中的分页
  70. $this->load->library('pagination');
  71. 1 $config['base_url'] = $url;
  72. 2 /* 分页的基础 URL
  73. 3 如果你想用a、b的链接形式,则该url应该形式如/news/page/
  74. 4 如果链接是c、d的形式,则url应该如/news?
  75. 5 */
  76. 6 $config['total_rows'] = $total;//记录总数,这个没什么好说的了,就是你从数据库取得记录总数
  77. 7 $config['per_page'] = $pagesize; //每页条数。额,这个也没什么好说的。。自己设定。默认为10好像。
  78. 8 $config['page_query_string'] = TRUE;
  79. 9 /*传参形式。开启true则会自动在你的url后面加上&per_page=3。(这个per_page是默认的查询字符,当然你也可以用$config['query_string_segment']来自己设定)
  80. 10 因此c、d中的形式一般是为localhost/news?&per_page=2不过都一样,没什么影响。get的per_page还是3
  81. 11 */
  82. 12 $config['first_link'] = '首页'; // 第一页显示
  83. 13 $config['last_link'] = '末页'; // 最后一页显示
  84. 14 $config['next_link'] = '下一页>'; // 下一页显示
  85. 15 $config['prev_link'] = '上一页'; // 上一页显示
  86. 16 $config['cur_tag_open'] = 'aclass="current">'; // 当前页开始样式
  87. 17 $config['cur_tag_close'] = '/a>';
  88. 18 /*当前页结束样式。这些你可以自己尝试一下。
  89. 19比如说我想让当前页的分页数字样式好看一点,红色字体等。你就可以在current上加上css代码
  90. 20*/
  91. 21 $config['num_links'] = 2;//当前连接前后显示页码个数。意思就是说你当前页是第5页,那么你可以看到34567页。
  92. 22 $config['uri_segment']=4;
  93. 23/*这个是你在用a)、b)链接样式的时候,用来判断页页数。
  94. 24 比如localhost/news/page/3 这个uri_segment就要设定为3。localhost/news/title/page/3这个就要设定为4
  95. 25 */
  96. 26 $config['use_page_numbers']= TRUE;
  97. 27/*这个就是a)、b)的差别了。开启了,page就会表示页数。false就会表示记录数

以上就介绍了 CI框架简单使用方法,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

See all articles