Codeigniter项目中的Controller如何在Routes.php中没有条目的情况下正确路由

 2021-04-18 

How can a Controller in a Codeigniter project be correctly routed without an entry in routes.php

我正在一个Codeigniter项目中,该项目有多个控制器:制造商,结果和编辑。我在Manufacturers控制器上遇到问题,因此打开了route.php。我发现了这个:

1
2
$route['default_controller'] ="results";
$route['404_override'] = '404.html';

没有"制造商"或"编辑"的条目。但是,我可以通过导航到适当的URL来查看由"编辑"控制器创建的页面。似乎Codeigniter可以找到"编辑",但找不到"制造商"。这对我来说很奇怪,因为它们都没有出现在routes.php文件中。 Codeigniter可以自动更正吗?还有其他说明这是如何工作的(或不工作的吗?)

编辑:这听起来像是我在此页面上遇到的问题,与路由问题无关,而是其他一些问题。

编辑:我查看了php日志文件,发现数据库配置存在问题。 Edit控制器不会加载该数据库,因此这就是Edit能够正确运行的原因。要解决此问题,我需要将数据库驱动程序从mysql更改为mysqli。


route看起来像是控制器的别名。例如:$ route [\\'forgot-password \\'] = \\'forgotpassword \\'; forgotpassword是一个控制器,但是如果键入了忘记密码,仍然可以打开忘记密码页面。