Code点燃器路线: URL 路由示例
⚡ 智能摘要
Code点火器 URL 路线图 URL 路由指向控制器和方法,并带有一个可选参数。路由在 routes.php 中定义,因此需要保持简洁。 URL 例如 contacts/edit/1 运行 Contacts 控制器的 edit 方法,该方法加载页眉、内容和页脚视图。

是什么 Code点燃器路线?
路线负责响应 URL 请求。路由匹配 URL 路由到预定义的路由。如果找不到匹配的路由, CodeIgniter 抛出页面未找到异常。
路线 Code点火器使用以下公式定义:
example.com/Controller/Method/Parameter/
这里:
- 控制器映射到应该响应的控制器名称 URL.
- 方法映射到控制器中应该响应 URI 请求的方法。
- 参数——此部分是可选的。
CodeIgniter路由示例
现在让我们来看一个实际的例子。 URL 路由 Code点火器 例如,考虑以下情况。 URL: http://localhost:3000/contacts/edit/1
这里:
- 响应上述请求的控制器的名称 URL 是“联系人”。
- 控制器类 Contacts 中的方法是“edit”。
- edit 方法接受一个参数。在我们的示例中,传递给该方法的参数值为“1”。
以下是我们计划做的简要背景:
- 路由 路由响应 URL 请求。 CodeIgniter路由匹配 URL 路由到预定义的路由。如果找不到匹配的路由, CodeIgniter 抛出页面未找到异常。
- 控制器 路由与控制器相连。控制器将模型和视图粘合在一起。它们从模型请求数据和业务逻辑,并通过视图的呈现层返回结果。 URL 如果已匹配到路由,则会将其转发到控制器公共函数,该函数与数据源和业务逻辑交互并返回视图。
- 观看数 – 视图负责呈现。视图通常是 HTML、CSS 和 JavaScript这部分负责向用户显示网页。通常情况下,显示的数据是从数据库或其他数据源中检索的。
为了学习如何在实际项目中实现路由,我们假设正在创建一个用于管理联系人信息的应用程序。下表显示了…… URL我们将与以下人员合作。
| S / N | URL | 路线 | 控制器 | 付款方式 |
|---|---|---|---|---|
| 1 | / | $route['默认控制器'] | 欢迎来到大巨龙 | 指数 |
| 2 | /联系人 | $route['联系人'] | 联系方式 | 指数 |
| 3 | /联系人/创建 | $route['创建'] | 联系方式 | 创建信息图 |
| 4 | /联系人/编辑/id | $route['编辑/:id'] | 联系方式 | 编辑 |
| 5 | /联系人/更新/id | $route['更新/:id'] | 联系方式 | 更新 |
| 6 | /联系人/删除/id | $route['删除/:id'] | 联系方式 | 删除 |
我们将根据上表创建应用程序的路由。我们已经定义了…… URLs时, CodeIgniter路由,并将它们映射到相应的控制器和方法名称。
创造 URL 应用程序路由
让我们一起创造 Code点火器 URL 为我们的教程项目配置路由。打开 application/config/routes.php 文件,并修改路由配置以匹配以下内容:
$route['default_controller'] = 'welcome'; $route['contacts'] = 'contacts'; $route['create'] = 'contacts/create'; $route['edit/:id'] = 'contacts/edit'; $route['update/:id'] = 'contacts/update'; $route['delete/:id'] = 'contacts/delete'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
这里:
- $route['default_controller'] = 'welcome'; 定义默认控制器 Welcome。
- $route['contacts'] = 'contacts'; 定义了一个联系人路由,该路由调用 Contacts 控制器中的 index 方法。
- $route['create'] = 'contacts/create'; 定义了一个指向 Contacts 控制器的 create 路由,并调用了 create 方法。
- $route['edit/:id'] = 'contacts/edit'; 定义了一个路由编辑,该路由接受一个 id 参数,并指向 Contacts 控制器的 edit 方法。
- $route['update/:id'] = 'contacts/update'; 定义了一个路由更新,它接受一个 id 参数,并指向 Contacts 类的 update 方法。
- $route['delete/:id'] = 'contacts/delete'; 定义了一个删除路由,该路由接受一个 id 参数,并指向 Contacts 控制器的 delete 方法。
下表显示了各自的 URLs 由上述定义的路线推导而来:
| S / N | 路线 | 相应 URL |
|---|---|---|
| 1 | $route['default_controller'] = '欢迎'; | http://localhost:3000 |
| 2 | $route['contacts'] = '联系人'; | http://localhost:3000/contacts |
| 3 | $route['创建'] = '联系人/创建'; | http://localhost:3000/contacts/create |
| 4 | $route['编辑/:id'] = '联系人/编辑'; | http://localhost:3000/contacts/edit/1 |
| 5 | $route['更新/:id'] = '联系人/更新'; | http://localhost:3000/contacts/update/1 |
| 6 | $route['delete/:id'] = '联系人/删除'; | http://localhost:3000/contacts/delete/1 |
现在我们已经了解了路由,接下来让我们创建 Contacts 控制器,它将响应路由中指定的操作。在 application/controllers/Contacts.php 目录下创建一个名为 Contacts.php 的新文件,并添加以下代码:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Contacts extends CI_Controller { public function __construct() { parent::__construct(); $this->load->helper('url'); } public function index() { $this->load->view('header'); $this->load->view('contacts/index'); $this->load->view('footer'); } public function create() { $this->load->view('header'); $this->load->view('contacts/create'); $this->load->view('footer'); } public function edit($id) { $this->load->view('header'); $this->load->view('contacts/edit'); $this->load->view('footer'); } public function update($id) { $this->load->view('header'); $this->load->view('contacts/update'); $this->load->view('footer'); } public function delete($id) { $this->load->view('header'); $this->load->view('contacts/delete'); $this->load->view('footer'); } }
这里:
- class Contacts extends CI_Controller {…} 定义了我们的控制器类,并继承了 CI_Controller 类。 Code点火器。
- 上面定义的方法对应于我们定义的路由,而像 delete 这样的带有参数的方法接受 $id 参数。
- 请注意,这些函数会加载三个视图。页眉和页脚是所有方法通用的。中间的视图则特定于某个操作,例如,删除函数使用“删除”视图,创建函数使用“创建”视图。另一点需要注意的是,这些视图是从 contacts 子目录加载的。
Code点燃器视图
在测试我们的产品之前,我们还需要完成最后一步。 Code在 Web 浏览器中使用带参数的 Igniter 路由。让我们创建与上述控制器方法对应的视图。下图展示了应用程序的大致外观:
在 application/views 目录下创建以下文件:
header.php – this file will contain the contacts app menu and the header footer.php – this file will contain the application footer
在 application/views 目录下创建一个名为 contacts 的新目录(application/views/contacts),并在该目录中创建以下文件:
index.php create.php edit.php
您的文件结构应如下所示:
现在让我们更新 header.php 文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>CodeIgniter Routes</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">CI Contacts v1</h1>
<h2 class="subtitle">CodeIgniter contacts management app</h2>
<div class="columns">
<div class="column is-one-quarter">
<aside class="menu">
<p class="menu-label">
General
</p>
<ul class="menu-list">
<li><a class="is-active" href="#">Dashboard</a></li>
<li><a href="<?=site_url('contacts/create')?>">New Contact</a></li>
<li><a href="<?=site_url('contacts/edit/1')?>">Edit Contacts</a></li>
</ul>
<p class="menu-label">
Settings
</p>
<ul class="menu-list">
<li><a href="#">SMS</a></li>
<li><a href="#">Email</a></li>
</ul>
</aside>
</div>
这里:
- 上面的 HTML 代码从 CDN 加载 Bulma CSS。
以下是 footer.php 文件的代码:
</div> </div> </section> </body> </html>
现在让我们添加联系人相关的 index.php、edit.php 和 create.php 文件的代码:
index.php <div class="column">Index content goes here...</div> edit.php <div class="column">Edit content goes here...</div> create.php <div class="column">Create content goes here...</div>
您可以保存所有更改。打开以下文件。 URL 在您的网络浏览器中: http://localhost:3000/contacts/您可以点击“新建联系人”和“编辑联系人”链接,看看会发生什么。


