Php 当已经使用Codeigniter配置路由时,如何检查控制器是否已经存在?
在我的网站上,我从数据库中动态加载内容,如下所示Php 当已经使用Codeigniter配置路由时,如何检查控制器是否已经存在?,php,codeigniter,content-management-system,routes,Php,Codeigniter,Content Management System,Routes,在我的网站上,我从数据库中动态加载内容,如下所示 e.g mysite.com/about-us 为此,数据库中有一个enrtry,因此它将加载“关于我们”的内容&仅使用“页面”控制器打印 为此,我在routes.php中添加了以下配置 $route[':any'] = "page"; 但是如果我已经有了名为“about us”的控制器,并且我想加载它&而不是从数据库加载的,那么我该怎么做呢?您需要添加这个 $route['about-us'] = "aboutus"; $route[
e.g mysite.com/about-us
为此,数据库中有一个enrtry,因此它将加载“关于我们”的内容&仅使用“页面”控制器打印
为此,我在routes.php中添加了以下配置
$route[':any'] = "page";
但是如果我已经有了名为“about us”的控制器,并且我想加载它&而不是从数据库加载的,那么我该怎么做呢?您需要添加这个
$route['about-us'] = "aboutus";
$route['about-us/(:any)'] = "aboutus/$1";
以前
$route[':any'] = "page";
由于CI路由不是贪婪的,它在找到about us控制器后不会检查页面控制器。一个平滑的解决方案是使用错误/缺失的页面控制器,并将其指向
config/routes.php
然后它会自动首先选择所有现有的控制器,然后再选择该控制器
如果在数据库中找不到记录,也可以调用show_404()
这允许您创建新控制器,而无需将所有控制器都指向路由文件
A有点奇怪,这是一个快速的解决方案