php-Codeigniter-路由到控制器(如果存在),如果不使用dafault

所以我设置了这样的路线:

$route[':any'] = "main";
$route['products/(:any)'] = "products/product/$1";

例如,www.mysite.com / something进入主控制器,在这里我处理“某物”.
对于产品,我以类似的方式处理.

但是,正如您之后看到的那样,我必须用我希望代替主控制器使用的方法写下所有其他控制器.有没有一种方法可以使它自动检测控制器是否存在,请使用控制器而不是认的“主”控制器?

$route['products'] = "products";
$route['admin/user/login'] = "admin/user/login";
$route['admin/user/logout'] = "admin/user/logout";
$route['admin/migrations'] = "admin/migrations";
$route['admin/dashboard'] = "admin/dashboard";

解决方法:

我在任何地方的博客上都找不到它,但是我会在我的routes.PHP中使用以下代码,在您的情况下,我会将其放在$route [‘:any’] =“ main “;

$controller_dir = opendir(APPPATH."controllers");

while (($file = readdir($controller_dir)) !== false) {

    if (substr($file, -4) == ".PHP" ) {

        $route[substr($file, 0, -4)."(.*)"] = substr($file, 0, -4)."$1";

    } elseif (substr($file, -5) == ".PHP/") {

        $route[substr($file, 0, -5)."(.*)"] = substr($file, 0, -5)."$1";

    }
}

如果我需要覆盖其中的任何一条或具有任何唯一的路由,请将其放在此代码上方的route.PHP文件的顶部.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...