CodeIgniter - 基础知识

CodeIgniter - 基础知识 首页 / Codeigniter入门教程 / CodeIgniter - 基础知识

控制器是一个简单的类文件。顾名思义,它通过URI控制整个应用程序。

创建控制器

首先,进入 application/controllers 文件夹。创建一个Test.php文件,在该文件中编写以下代码-

<?php 
   class Test extends CI_Controller {
  
      public function index() { 
         echo "Hello Learnfk!"; 
      } 
   } 
?>

Test 类扩展了名为 CI_Controller 的内置类。每当您要创建自己的Controller类时,都必须扩展此类。

访问控制器

可以通过URI调用上述控制器,如下所示:

http://www.your-domain.com/index.php/test

类名必须以大写字母开头,但是通过URI调用该控制器时,需要写小写字母。调用控制器的一般语法如下-

http://www.your-domain.com/index.php/controller/method-name

创建方法

修改以上类并创建另一个名为" hello"的方法。

<?php 
   class Test extends CI_Controller {  
	
      public function index() { 
         echo "This is default function."; 
      } 
  
      public function hello() { 
         echo "This is hello function."; 
      } 
   } 
?>

无涯教程可以通过以下三种方式执行上述控制器-

在浏览器中访问第一个URI之后,CodeIgniter调用默认方法" index "。

Index output

在浏览器中访问第二个URI,得到与上图所示相同的输出。在这里在URI中传递了控制器名称之后的方法名称。由于该方法的名称是" index ",因此得到了相同的输出。

访问浏览器中的第三个URI,无涯教程得到的输出如下图所示。获得方法" hello "的输出,因为在控制器名称之后" hello "作为方法名称。 

Hello Output

记住要点

  • 控制器类名大写开头。

  • 方法名小写开头。

  • 请勿使用与父类相同的方法名称,因为它将覆盖父类的函数。

Views视图

视图不能直接调用。来创建一个简单的视图。在 application/views 下创建一个名为" test.php "的文件,并将以下给定的代码复制到该文件中。

<!DOCTYPE html> 
<html lang="en"> 

   <head> 
      <meta charset="utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head>
	
   <body> 
      CodeIgniter View Example 
   </body>
	
</html>

如下所示更改 application/controllers/test.php 文件的代码。

加载视图

可以通过以下语法加载视图-

$this->load->view('name');

其中name是要呈现的视图文件。如果您计划将视图文件存储在某个目录中,则可以使用以下语法-

$this->load->view('directory-name/name');

除非使用.php以外的其他名称,否则不必将扩展名指定.php

index()方法正在调用view方法,并将" test"作为参数传递给view()方法。

<?php 
   class Test extends CI_Controller { 
	
      public function index() { 
         $this->load->view('test'); 
      } 
   } 
?>

这是上面代码的输出-

Test output

以下流程图说明了一切工作原理-

Flow Chart

创建模型

模型类存储在 application/models 目录中。以下代码显示了如何在CodeIgniter中创建模型类。

<?php 
   Class Model_name extends CI_Model { 
	
      Public function __construct() { 
         parent::__construct(); 
      } 
   } 
?> 

其中Model_name是您要提供的模型类的名称。每个模型类都必须继承CodeIgniter的CI_Model类。模型类的首字母必须为大写字母。以下是用户模型类的代码。

<?php 
   Class User_model extends CI_Model {
	
      Public function __construct() { 
         parent::__construct(); 
      } 
		
   } 
?>

上面的模型类必须另存为User_model.php。类名和文件名必须相同。

加载模型

可以在控制器中调用模型。以下代码可用于加载任何模型。

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

其中model_name是要加载的模型的名称。加载模型后,您可以简单地调用其方法,如下所示。

$this->model_name->method();

自动加载

在某些情况下,您可能需要整个应用程序中的某些模型类。在这种情况下,最好是自动加载。

/*
| ---------------------------------------------------------------
|  Auto-Load 
| ---------------------------------------------------------------
| Prototype:
|
|   $autoload['model']=array('first_model', 'second_model');
|
| You can also supply an alternative model name to be assigned
| in the controller:
|  
|   $autoload['model']=array('first_model' => 'first');
*/
$autoload['model']=array();

如上面代码所示,系统在初始化时自动加载的数组指定的模型。

Helpers 辅助类

顾名思义,它将帮助您构建系统。它分为几个小函数,以提供不同的函数。下表列出了CodeIgniter中提供的帮助程序。

链接:https://www.learnfk.comhttps://www.learnfk.com/codeigniter/codeigniter-basic-concepts.html

来源:LearnFk无涯教程网

S.N.Helper Name & Remark
1

Array Helper

Array Helper文件包含处理数组的函数。

2

CAPTCHA Helper

CAPTCHA Helper文件包含有助于创建CAPTCHA验证码的函数。

3

Cookie Helper

Cookie帮助程序文件包含协助使用Cookie的函数。

4

Date Helper

日期帮助器文件包含可帮助您处理日期的函数。

5

Directory Helper

目录帮助器文件包含协助处理目录的函数。

6

Download Helper

下载帮助器使您可以将数据下载文件。

7

Email Helper

电子邮件助手提供了一些使用电子邮件的辅助函数。有关更强大的电子邮件解决方案,请参见CodeIgniter的电子邮件类别。

8

File Helper

File Helper文件包含处理文件的函数。

9

Form Helper

表单帮助器文件包含处理表单的函数。

10

HTML Helper

HTML Helper文件包含协助使用HTML的函数。

11

Inflector Helper

Inflector Helper文件包含允许您将单词更改为复数,单数,驼峰大小写等的函数。

无涯教程网

12

Language Helper

语言帮助器文件包含处理语言文件的函数。

13

Number Helper

Number Helper文件包含帮助您处理数字数据的函数。

14

Path Helper

路径帮助器文件包含允许您使用服务器上文件路径的函数。

15

Security Helper

安全帮助程序文件包含与安全相关的函数。

16

Smiley Helper

Smiley Helper文件包含使您能够管理表情(表情符号)的函数。

17

String Helper

字符串帮助器文件包含协助处理字符串的函数。

18

Text Helper

文本帮助器文件包含协助处理文本的函数。

19

Typography Helper

Typography Helper文件包含以语义相关的方式帮助您格式化文本的函数。

20

URL Helper

URL Helper文件包含协助使用URL的函数。

21

XML Helper

XML Helper文件包含协助处理XML数据的函数。

加载Helper

可以如下所示加载助手:

$this->load->helper('name');

其中名称是助手的名称,如果要加载URL Helper,则可以将其加载为-

$this->load->helper('url');

Routing 路由

CodeIgniter具有用户友好的URI路由系统,因此您可以轻松地重新路由URL。通常,URL字符串与其对应的class/method之间存在一对一的关系。 URI中的段通常遵循此模式-

your-domain.com/class/method/id/
  • 第一段/class/代表应该调用的控制器类。

  • 第二段/method/表示应调用的类函数或方法。

  • 第三和其他任何段均表示ID和将传递给控制器​​的任何变量。

在某些情况下,您可能需要更改此默认路由机制。 CodeIgniter提供了可用来设置自己的路由规则的工具。

自定义路由

有一个可以处理所有这些文件的文件。该文件位于application/config/routes.php。您会发现一个名为$route的数组,您可以在其中自定义路由规则。 $route数组中的键将决定要路由的内容,而值将决定要路由的位置。 CodeIgniter中有3条保留的路由。

S.N.Reserved Routes & Remark
1

$route ['default_controller']

默认控制器,如果URL未指定控制器,则调用这个。

2

$route ['404_override']

此路由指示如果找不到请求的控制器,则指向404这个默认界面,文件位于application/views/errors/error_404.php

3

$route ['translate_uri_dashes']

此选项使您可以在控制器和方法URI段中用下划线自动将破折号('-')替换为下划线,从而在需要时为您节省了其他路由条目。

通配符

无涯教程可以使用两个通配符,如下所示:

  • (:num)     -  它将匹配仅包含数字的段。

  • (:any)       -  它将匹配包含任何字符的段。

$route['product/:num']='catalog/product_lookup';

在上面的示例中,如果在URL的第一段中找到文字词" product",而在第二段中找到数字,则使用" catalog"类和" product_lookup"方法代替。

正则表达式

像通配符一样,无涯教程也可以在 $route数组键部分中使用正则表达式。如果任何URI与正则表达式匹配,则它将被路由到$route数组中设置的值部分。

$route['products/([a-z]+)/(\d+)']='$1/id_$2';

在上面的示例中,类似于products/shoes/123的URI将调用"shoes"控制器的" id_123 "方法。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

零基础学Python -〔尹会生〕

深入剖析Kubernetes -〔张磊〕

从0开始学大数据 -〔李智慧〕

编译原理之美 -〔宫文学〕

视觉笔记入门课 -〔高伟〕

说透区块链 -〔自游〕

JavaScript进阶实战课 -〔石川〕

B端体验设计入门课 -〔林远宏(汤圆)〕

结构写作力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)