codeigniter - 在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 类。如何调用正则表达式定义的任何类?
解决方案
如果这不是现有项目,我建议您在 Contorollers目录中创建一个Admin子目录,然后在此处创建News控制器并向其添加与以下路由规则匹配
的编辑方法/函数:这比覆盖 CI 路由逻辑更容易$routes->add('admin/news/edit');
推荐阅读
- php - 管理员登录页面
- android - 检查是否显示消歧
- c++ - 设置 QFont 的颜色
- javascript - 如何从 nodejs 检查 Redis Cache 连接状态
- xml - postgres sql 行转换为特定的 xml 格式
- php - 我想同时检查两个变量的值
- reactjs - 我无法在 Redux 中使用调度操作更新我的状态(使用 Redux-starter-kit)
- openapi - 是否可以在 OpenAPI v3 规范中禁止未知查询参数?
- oracle - Ords auto REST - 设置自动休息查询返回的默认行数
- hazelcast - Hazelcast 是否支持这个 3 节点网络分区?