是Symfony 2.8“;创建页面(&Q);你漏了一步?

是Symfony 2.8“;创建页面(&Q);你漏了一步?,symfony,symfony-2.8,Symfony,Symfony 2.8,在偶尔使用Symfony组件之后,我最终决定创建一个真正的Symfony项目,并安装了Symfony 2.8,然后转到并按照它所说的步骤创建 // src/AppBundle/Controller/LuckyController.php 文件。我做到了。它确实说你需要做一条路线,但在它说要测试它之前,它没有说如何做。所以我按照上面说的做了测试,得到了一个 No route found for "GET /lucky/number" 错误。我假设我需要创建路由,但该页面不应该显示该步骤吗?路由

在偶尔使用Symfony组件之后,我最终决定创建一个真正的Symfony项目,并安装了Symfony 2.8,然后转到并按照它所说的步骤创建

// src/AppBundle/Controller/LuckyController.php
文件。我做到了。它确实说你需要做一条路线,但在它说要测试它之前,它没有说如何做。所以我按照上面说的做了测试,得到了一个

No route found for "GET /lucky/number"

错误。我假设我需要创建路由,但该页面不应该显示该步骤吗?

路由是由控制器中的
@route
注释设置的(有其他方法,但这是大多数情况下的默认方法)。因此,它是在第11行的示例代码中创建的:

     * @Route("/lucky/number")
您提到的文档中也解释了这一点:

numberAction()
上面的
@Route
称为注释,它定义了URL模式。您也可以使用YAML(或其他格式)编写路由:请阅读本章中的相关内容

如果缓存无法立即工作,您可能需要清除缓存,删除app/cache/dev/下的所有内容,或者从命令行运行此操作:

php app/console cache:clear

该代码在文档的第一个代码块中解释:

如果这不起作用,一定是出了什么问题。有几件事需要检查:

  • 您的
    app/config/routing.yml
    是否包含以下三行

    app:
        resource: "@AppBundle/Controller/"
        type:     annotation
    
  • 您的
    src/AppBundle/Controller/LuckyController.php文件是否包含
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route
  • 方法前的多行注释是否以
    /**
    开头(而不是正常的
    /*
    )?它是否直接跟在方法定义后面,没有任何空行之类的内容

我清除了缓存,它仍然无法工作。我会尝试阅读路由一章,但我不认为这对“第一页创建”演示是必要的。@IgorPantović,是的。。。注释完全是从.yes中复制/粘贴的。检查了所有这些东西。该文档完全是从演示文档中复制的。并且routing.yml文件与默认安装中描述的完全相同。我不知道这是否重要,但我正在MAMP环境中运行Symfony。这是我的安装中唯一“不寻常”的地方,因为还没有人告诉我要做的事情是有效的,我正在试图找出我与其他人的不同之处。@DanGoodspeed-Hmm,你能试着运行
php-app/console-debug:router
命令来检查路由是否可用吗?可能您没有在AppKernel中注册AppBundle?运行debug:router将返回一个包含标题名称、方法、方案、主机和路径的表。和14行,底部是主页。这里并没有“幸运”的意思。@DanGoodspeed从
src/AppBundle/Controller/LuckyController.php开始。非常感谢。这就是问题所在。谢谢你,沃特J。