Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当已经使用Codeigniter配置路由时,如何检查控制器是否已经存在?_Php_Codeigniter_Content Management System_Routes - Fatal编程技术网

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有点奇怪,这是一个快速的解决方案