升级路由
文档
更改内容
升级指南
如果您以与 CI3 相同的方式使用自动路由,则需要启用 自动路由(旧版)。
您必须更改每条路由行的语法,并将其附加在 app/Config/Routes.php 中。例如
$route['journals'] = 'blogs';
到$routes->add('journals', 'Blogs::index');
。这将映射到index()
方法中的Blogs
控制器。$route['product/(:any)'] = 'catalog/product_lookup';
到$routes->add('product/(:segment)', 'Catalog::productLookup');
。不要忘记将(:any)
替换为(:segment)
。$route['login/(.+)'] = 'auth/login/$1';
到$routes->add('login/(.+)', 'Auth::login/$1');
注意
为了向后兼容,这里使用了
$routes->add()
。但我们强烈建议使用 HTTP 动词路由,例如$routes->get()
而不是$routes->add()
以确保安全性。
代码示例
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
use CodeIgniter\Router\RouteCollection;
/**
* @var RouteCollection $routes
*/
$routes->get('/', 'Home::index');
$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');
注意
为了向后兼容,这里使用了 $routes->add()
。但我们强烈建议使用 HTTP 动词路由,例如 $routes->get()
而不是 $routes->add()
以确保安全性。