升级路由
文档
变更点
- 在 CI4 中,默认关闭自动路由。 
- 在 CI4 中引入了新的更安全的 自动路由(改进版)。 
- 在 CI4 中,路由配置不再通过设置路由数组来完成。 
升级指南
- 如果你以与 CI3 相同的方式使用自动路由,则需要启用 自动路由(传统)。 
- CI3 中的占位符 - (:any)在 CI4 中将是- (:segment)。
- 你必须更改每个路由行的语法,并将其附加到 app/Config/Routes.php 中。例如: - $route['journals'] = 'blogs';改为- $routes->add('journals', 'Blogs::index');。这将映射到- Blogs控制器中的- index()方法。
- $route['product/(:any)'] = 'catalog/product_lookup';改为- $routes->add('product/(:segment)', 'Catalog::productLookup');
- $route['login/(.+)'] = 'auth/login/$1';改为- $routes->add('login/(.+)', 'Auth::login/$1');
 
代码示例
CodeIgniter 3.x 版本
路径:application/config/routes.php:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// ...
$route['posts/index']  = 'posts/index';
$route['teams/create'] = 'teams/create';
$route['teams/update'] = 'teams/update';
$route['posts/create']   = 'posts/create';
$route['posts/update']   = 'posts/update';
$route['drivers/create'] = 'drivers/create';
$route['drivers/update'] = 'drivers/update';
$route['posts/(:any)']   = 'posts/view/$1';
CodeIgniter 4.x 版本
路径:app/Config/Routes.php:
<?php
namespace Config;
// ...
/*
 * --------------------------------------------------------------------
 * Route Definitions
 * --------------------------------------------------------------------
 */
// ...
$routes->add('posts/index', 'Posts::index');
$routes->add('teams/create', 'Teams::create');
$routes->add('teams/update', 'Teams::update');
$routes->add('posts/create', 'Posts::create');
$routes->add('posts/update', 'Posts::update');
$routes->add('drivers/create', 'Drivers::create');
$routes->add('drivers/update', 'Drivers::update');
$routes->add('posts/(:segment)', 'Posts::view/$1');
// ...