Files
ulthon_admin/.agents/skills/tp-controller-url-rules/SKILL.md
2026-03-26 20:22:34 +08:00

2.5 KiB
Raw Blame History

name, description
name description
tp-controller-url-rules 解释 ThinkPHP 8 多级控制器与大驼峰控制器的 URL 访问规则。当用户询问如何访问控制器、URL 报错或需要配置路由时调用。

ThinkPHP 8 控制器 URL 访问规则

本 Skill 指导如何在 ThinkPHP 8 框架中正确访问多级控制器以及采用大驼峰命名的控制器和方法。

1. 大驼峰命名转换规则

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

2. 多级控制器访问规则

当控制器存放在子目录中时URL 访问需要使用 .(点号)来连接目录名和控制器名。

  • 目录结构app/admin/controller/system/Config.php
  • 访问路径/admin/system.config/index

注意:

  • 子目录名建议使用全小写。
  • 如果子目录名也是大驼峰,同样遵循转换规则(取决于具体配置,但通常建议目录名保持简单)。

3. 混合使用示例

结合多级目录和大驼峰命名的复杂情况:

控制器文件路径 类名 方法名 对应 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

4. 常见问题排查

  • 404 错误:检查是否漏掉了多级控制器的 . 分隔符。
  • 大小写敏感:如果 URL 无法识别下划线,检查 config/route.php 中的 url_convert 是否被设置为 false
  • 多应用影响在多应用模式下URL 的第一段通常是应用名(如 admin),后续才是控制器和方法。

5. 开发者建议

  • 统一风格:在代码中使用大驼峰命名类和方法,但在前端请求、模板链接(如 {:url('...')})中建议明确指向转换后的路径或使用系统助手函数自动生成。
  • 路由定义:对于复杂的 URL建议在 route/*.php 中手动定义路由规则,以提供更友好的访问地址。