mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 07:22:49 +08:00
- tp-controller-url-rules skill 迁移为 rule ulthon-controller-url.md - AGENTS.md「其他规则」中的 source/ 约定下沉为 ulthon-source-directory.md - AGENTS.md「其他规则」中的部署栈+命令执行环境下沉为 ulthon-deploy-environment.md - AGENTS.md 精简:其他规则从 10 条减至 5 条,规则维护机制从 10 行减至 4 行 - ulthon-rules-manager 技能增加 rules/skills 边界判定说明 - rules 定位拓宽:约束、约定、设计决策均可作为 rule
2.0 KiB
2.0 KiB
ThinkPHP 8 控制器 URL 访问规则
来源:框架内置(ulthon-) 作用域:所有涉及控制器路由、URL 构造的场景 触发条件:编写/调试控制器路由、URL 报错、配置路由时加载
大驼峰命名转换规则
ThinkPHP 8 默认开启 URL 自动转换(url_convert)。大驼峰命名(CamelCase)的控制器和方法在 URL 中转换为小写+下划线(snake_case)。
- 控制器类名:
UserGroup-> URL:user_group - 操作方法名:
public function editInfo()-> URL:edit_info
示例:控制器 app\admin\controller\UserGroup.php 中的 editInfo 方法:
访问路径:/admin/user_group/edit_info
多级控制器访问规则
控制器存放在子目录中时,URL 使用 .(点号)连接目录名和控制器名。
- 目录结构:
app/admin/controller/system/Config.php - 访问路径:
/admin/system.config/index
注意:
- 子目录名建议使用全小写
- 如果子目录名也是大驼峰,同样遵循转换规则
混合使用示例
| 控制器文件路径 | 类名 | 方法名 | 对应 URL 路径 |
|---|---|---|---|
controller/Index.php |
Index |
index |
/admin/index/index |
controller/UserGroup.php |
UserGroup |
add |
/admin/user_group/add |
controller/system/Admin.php |
Admin |
login |
/admin/system.admin/login |
controller/mall/GoodsCate.php |
GoodsCate |
getList |
/admin/mall.goods_cate/get_list |
常见问题排查
- 404 错误:检查是否漏掉了多级控制器的
.分隔符 - 大小写敏感:URL 无法识别下划线时,检查
config/route.php中url_convert是否为false - 多应用影响:多应用模式下,URL 第一段是应用名(如
admin),后续才是控制器和方法
开发者建议
- 代码中使用大驼峰命名,前端请求/模板链接中明确指向转换后的路径,或使用系统助手函数自动生成
- 复杂 URL 建议在
route/*.php中手动定义路由规则