CodeIgniter 控制器、视图和路由:通过示例应用学习
在本教程中,您将学习以下主题。
- 路由 路由负责响应 URL 请求。路由匹配 URL 路由到预定义的路由。如果找不到匹配的路由,则 CodeIgniter抛出“页面未找到”异常。
- 控制器 路由与控制器相连。控制器将模型和视图粘合在一起。它从模型请求数据/业务逻辑,并将结果返回到视图的呈现中。一旦…… URL 如果请求已匹配到路由,则会将其转发到控制器的公共函数。此函数会与数据源和业务逻辑交互,并返回显示结果的视图。
- 观看数 – 视图负责呈现。视图通常是 HTML、CSS 和 Java脚本。这是负责向用户显示网页的部分。通常,显示的数据通常是从数据库或任何其他可用数据源检索的。
如何创建一个新的 Code点燃器项目
我们将使用 Composer 创建一个新项目。我将使用 PHP 内置服务器,因此不需要额外的软件,例如 Apache (阿帕奇)在本教程中,我们使用 Windows 操作系统。因此,我们在 C 盘上创建了一个 Sites 文件夹。您可以使用任何适合您的目录。
打开命令行/终端并运行以下命令
cd C:\Sites
我们现在将创建一个 Code使用 Composer 构建 Igniter 项目。运行以下命令
composer create-project CodeIgniter/framework ci-app
这里,
- 上述命令创建了一个新的 Code使用最新稳定版本 3.1.9 的 Igniter 项目版本 3 到 ci-app 目录中。
当上述命令运行完成后,你应该能够在终端中看到类似下面的结果
运行以下命令浏览到新创建的项目目录 ci-app
cd ci-app
现在让我们启动 PHP 内置 Web 服务器
php -S localhost:3000
这里,
- 上述命令启动在端口 3000 上运行的内置 PHP 服务器。
打开网页浏览器并浏览以下内容 URL: http://localhost:3000/
您将看到以下页面
如果你能看到上面的页面那么恭喜你,你已经安装成功 Code点火器.
从上面的网页可以看出,上面显示的页面是由位于 application/views/welcome_message.php 的视图呈现的,负责的控制器位于 application/controllers/Welcome.php
Code点火器路由
目前,我们的应用程序只有一个 URL 这就是首页。在本节中,我们将自定义首页部分。我们将创建一些新的内容。 URL能够响应不同请求的。
让我们从主页路由开始
按照以下路径打开路线文件
application/config/routes.php
你应该能够看到以下内容
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
这里,
- $route['default_controller'] = 'welcome';定义响应 URI 请求的默认控制器
- $route['404_override'] = ”; 此路由允许您为 404 错误定义自定义路由。当找不到页面时,会发生 404 错误。 CodeIgniter 有一个默认的错误处理程序,但你也可以根据需要定义自己的处理程序。
- `$route['translate_uri_dashes'] = FALSE;` 此选项允许您将连字符转换为下划线。我们将在了解路由工作原理时讨论此选项。 Code点火器。
现在让我们来看一下负责显示我们打开程序时看到的首页的控制器方法。 URL http://localhost:3000/ 在网络浏览器中。
打开以下文件
application/controllers/Welcome.php
你应该能够看到以下代码
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
$this->load->view('welcome_message');
}
}
这里,
- `Defined('BASEPATH') OR exit('No direct script access allowed');` 可以防止未经 index.php 文件直接访问控制器类。请记住,在 MVC 架构中,所有请求都只有一个入口点,并且对于 CodeIgniter 的 index.php 文件。这段代码会阻止所有非通过 index.php 发起的请求。
- class Welcome extends CI_Controller {…} 定义一个类 Welcome,它扩展了父类 CI_Controller
- public function index() 定义一个公共函数,当你打开主页时默认调用该函数
- $this->load->view('welcome_message'); 此行加载视图 welcome_message。文件 welcome_message 位于目录 application/views/welcome_message.php 中
到目前为止,我们只探索了开箱即用的功能。 CodeIgniter,现在我们来做一些修改。我们将创建首页并替换默认页面。
在 application/views/home.php 中创建一个新文件
将以下代码添加到 home.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Hello CodeIgniter!</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
</head>
<body>
<section class="section">
<div class="container">
<h1 class="title">
CodeIgniter Hello World
</h1>
</div>
</section>
</body>
</html>
这里,
上述 HTML 代码加载了 Burma SSS 框架和来自 CDN 网络的字体,创建了一个非常基本的 HTML 文档。它应用了 Burma CSS 框架中非常简单的 CSS 规则。
打开以下 URL 在您的浏览器中: http://localhost:3000/
您应该能够看到以下内容
太好了,我们刚刚成功修改了主页。接下来,让我们定义我们的路线。假设我们的应用程序还需要能够显示关于我们的页面。
创建路线
打开路线文件 application/config.routes.php
添加以下路线
$route['about-us'] = 'welcome/about_us';
这里,
- 当访客参观时 URL /关于我们,我们正在指导 CodeIgniter 查找名为 Welcome 的控制器并执行 about_us 方法。
创建控制器
现在让我们定义关于我们的控制器方法
打开应用程序/控制器/Welcome.php
添加以下方法
public function about_us(){
$this->load->view('about_us');
}
这里,
- 上面的代码定义了一个函数about_us,并加载了一个视图about_us。
创建视图
现在让我们创建上一节中引用的视图
在 application/views/about_us.php 中创建一个新文件 about_us.php
添加以下代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>About CodeIgniter!</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
</head>
<body>
<section class="section">
<div class="container">
<h1 class="title">
About us yap...
</h1>
</div>
</section>
</body>
</html>
一切准备就绪,请打开以下内容 URL 在您的网络浏览器中: http://localhost:3000/index.php/about-us
你会看到以下页面
如果您能看到以上页面,那么恭喜您,您已成功创建了一个简单的应用程序。 Code点火器。
结语
在本教程中,我们介绍了构成一个系统的三个主要组成部分。 Code我们学习了 Igniter 应用程序。我们学习了路由以及如何定义路由,控制器以及如何创建响应路由请求的方法,并创建了简单的视图,这些视图会在用户请求资源时返回给他们。




