首页 > 解决方案 > 在codeigniter 4中从正则表达式调用类

问题描述

我想在codeigniter 4(路由)中通过正则表达式调用任何类。在版本 3 中,我使用了以下命令:

$route['^(.*?)-([A-Za-z]+)(\.([A-Za-z0-9_]+))*(\.php)+$'] = '$2/$4'; 

但对于版本 4,我需要使用以下代码:

$routes->add('^(.*?)-([A-Za-z]+)(\.([A-Za-z0-9_]+))*(\.php)+$', '$2::$4');

输出是

找不到控制器或其方法:\App\Controllers$2::Edit

例如 URL:http://localhost/Codeigniter-4.0.4/News-Admin.Edit.php 我想调用带有 Edit 函数 (Admin::Edit) 的 Admin 类。如何调用正则表达式定义的任何类?

标签: codeignitercodeigniter-4

解决方案


如果这不是现有项目,我建议您在 Contorollers目录中创建一个Admin子目录,然后在此处创建News控制器并向其添加与以下路由规则匹配 的编辑方法/函数:这比覆盖 CI 路由逻辑更容易$routes->add('admin/news/edit');


推荐阅读