应运行php bin/console debug:router列出全部已加载路由,查看路径、名称、http方法、控制器等;若输出为空,需检查路由文件导入是否正确、bundle是否启用、缓存是否清除;配合router:match验证实际匹配结果。

用 debug:router 列出全部已加载路由
直接运行 php bin/console debug:router,就能看到当前环境所有注册的路由:路径、名称、HTTP 方法、控制器类、是否启用等。它不区分 dev/prod,只反映实际加载结果。
常见问题:
- 输出为空或只有少数几条?说明路由文件根本没被加载——检查
config/routes.yaml是否正确 import 了你的路由配置,且路径拼写无误(比如漏掉resource:冒号) - 看到路由但控制器类名是
App\Controller\...而不是你预期的MyBundle\Controller\...?确认该 Bundle 已在config/bundles.php中启用,且其内部Resources/config/routing.yaml被主路由文件显式导入 - 想快速找 API 路由?加管道过滤:
php bin/console debug:router | grep ^api_或php bin/console debug:router | grep "/v2/"
查某条路由的详细定义用 debug:router [name]
比如你怀疑 user_profile 这条路由的参数约束有问题,就执行 php bin/console debug:router user_profile。它会显示:
- 完整路径(含可选参数、默认值)
- methods 限制(如只允许 GET)
- requirements 正则(如
{"id": "\d+"}) - options(如
compiler_class或utf8)
注意:debug:router 只展示静态定义,不验证正则是否真能匹配。比如 requirements={"slug": "admin"} 写成 "admin" 而不是 "^admin$",命令不会报错,但请求时会静默失败。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
router:match 才是验证“这个 URL 到底走哪条路”的唯一方式
debug:router 告诉你“有谁”,router:match 告诉你“谁接了这一单”。当访问 /api/posts/abc 返回 404,别猜,直接跑:
-
php bin/console router:match /api/posts/abc—— 看是否匹配、匹配哪条、为什么没匹配 -
php bin/console router:match --method=PUT /api/posts/123—— 测试方法限制 -
php bin/console router:match "/api/users" --header="Accept: application/json"—— 验证 condition 表达式(如版本协商) - 加
--verbose:遇到正则不匹配时,会明确提示 “Route 'blog_show' rejected due to requirements (id does not match regex)”
如果命令报 Command "router:match" is not defined,说明 SensioFrameworkExtraBundle 没启用,或 Symfony 版本太低(需 2.x 兼容版),不是路由本身的问题。
缓存和环境状态直接影响 debug:router 输出
改完路由配置却看不到新路由?大概率是缓存没清干净:
- 开发环境清缓存:
php bin/console cache:clear --env=dev - 生产环境必须加
--env=prod,否则缓存不会更新 - 清完立刻再跑
debug:router,如果仍没出现目标路由,说明配置压根没生效(路径错、Bundle 未注册、YAML 语法错误) - 检查
config/packages/framework.yaml中是否禁用了路由组件:framework: { router: false }—— 这种配置会让所有路由命令失效
真正容易被忽略的是:路由加载发生在容器编译阶段,而 debug:router 读的是编译后的路由集合。你改了 YAML 却忘了清缓存,命令输出就是过期的“假象”。每次改完,先清缓存,再验证,别跳步。










