You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony3.4访问/lucky/number报NotFoundHttpException路由不存在问题

问题根源

Symfony 3.4 默认的路由注解扫描规则仅会读取AppBundle\Controller命名空间下的控制器注解,你修改了控制器命名空间到App\Controller后,原有的扫描配置没有覆盖到新的命名空间路径,所以系统没有识别到你写的@Route注解,自然找不到对应路由。

解决步骤
  • 第一步:打开项目路由主配置文件 app/config/routing.yml,找到默认的注解扫描配置,默认配置通常如下:
app:
    resource: "@AppBundle/Controller/"
    type:     annotation
  • 第二步:将上述配置修改为适配新命名空间的路径,两种修改方式二选一即可:
    1. 如果你所有控制器都已经迁移到src/App/Controller目录下,直接修改resource路径:
    app:
        resource: "../src/App/Controller/"
        type:     annotation
    
    1. 如果你同时保留了AppBundle下的控制器和新的App\Controller下的控制器,可以新增一条扫描规则:
    app:
        resource: "@AppBundle/Controller/"
        type:     annotation
    
    app_custom:
        resource: "../src/App/Controller/"
        type:     annotation
    
  • 第三步:清理项目缓存,执行命令 php bin/console cache:clear
  • 第四步:可执行 php bin/console debug:router 命令查看路由列表,确认lucky_number(默认生成的路由名)已经出现在列表中后,再访问对应路径即可正常加载。
额外排查点

如果修改配置后仍然不生效,可检查以下两项:

  • 确认控制器文件存放路径和命名空间完全匹配:命名空间为App\Controller的前提下,文件必须放在src/App/Controller/LuckyController.php,路径大小写完全对应
  • 确认@Route注解引入正确:你代码中写的use Symfony\Component\Routing\Annotation\Route;是正确的,没有引入错类

内容的提问来源于stack exchange,提问作者af_159623

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 09:18:04