
[英]Is it possible to use dynamic controller name in routing in CodeIgniter 4?
[英]Codeigniter - routing to the controller if it exists, if not use dafault
所以我设置了这样的路线:
$route[':any'] = "main";
$route['products/(:any)'] = "products/product/$1";
例如, www.mysite.com/ something转到主控制器,在此我处理“ something” 。 对于产品,我以类似的方式处理。
但是,正如您之后看到的那样,我必须用我希望代替主控制器使用的方法写下所有其他控制器。 有没有办法让它自动检测控制器是否存在,请使用控制器而不是默认的“ main” ?
$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文件的顶部。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.