Files
ulthon_admin/.agents/rules/ulthon-controller-url.md
augushong c5ebf86ad9 refactor(rules): 精简 AGENTS.md,下沉模块级规则,迁移 skill 为 rule
- 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
2026-06-01 21:48:27 +08:00

2.0 KiB
Raw Permalink Blame History

ThinkPHP 8 控制器 URL 访问规则

来源框架内置ulthon- 作用域所有涉及控制器路由、URL 构造的场景 触发条件:编写/调试控制器路由、URL 报错、配置路由时加载

大驼峰命名转换规则

ThinkPHP 8 默认开启 URL 自动转换(url_convert。大驼峰命名CamelCase的控制器和方法在 URL 中转换为小写+下划线snake_case

  • 控制器类名UserGroup -> URLuser_group
  • 操作方法名public function editInfo() -> URLedit_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.phpurl_convert 是否为 false
  • 多应用影响多应用模式下URL 第一段是应用名(如 admin),后续才是控制器和方法

开发者建议

  • 代码中使用大驼峰命名,前端请求/模板链接中明确指向转换后的路径,或使用系统助手函数自动生成
  • 复杂 URL 建议在 route/*.php 中手动定义路由规则