具有相同名称的 CodeIgniter 路由


CodeIgniter routes with the same name

我有两个不同的控制器,我想将它们路由到同一个URL。

例如

$route['dashboard/(:any)'] = 'admin/crud/$1';
$route['dashboard/(:any)'] = 'admin/dashboard/$1';

但这会导致 404 错误。

我想:any通配符存在一些问题。

有没有替代使用方法?

CodeIgniter 不会将控制器映射到 URL,而是将 URL 映射到控制器。请参阅 URI 路由

您正在尝试映射两个完全相同的 URL 以转到不同的地方。这说不通。

此外,由于$route只是一个关联数组,因此您将覆盖该值,而不是添加其他路由。

$route['dashboard/(:any)'] = 'admin/crud/$1';
$route['dashboard/(:any)'] = 'admin/dashboard/$1'; //Immediately over writes the previous value

因此,看起来您只是对第二条路由有问题:

$route['dashboard/(:any)'] = 'admin/dashboard/$1';

由于 admin 是文件夹,因此请仔细检查路由传入的值是否实际上是 dashboard 控制器类中的方法。

另外,请查看此问题和接受的答案: 子文件夹中的路由控制器 - 代码点火器 我认为它提供了您尝试执行的操作的示例。