【问题标题】:Is the Symfony 2.8 "page creation" docs missing a step?Symfony 2.8“页面创建”文档是否缺少步骤?
【发布时间】:2015-12-04 22:33:49
【问题描述】:

在偶尔使用过 Symfony 组件后,我最终决定做一个真正的 Symfony 项目并安装 Symfony 2.8,然后去page creation docs 并按照它说的步骤制作

// src/AppBundle/Controller/LuckyController.php

文件。我这样做了。它确实说你需要制作一条路线,但在说要测试它之前没有说明如何做。所以我按照它说的测试了它并得到了一个

No route found for "GET /lucky/number"

错误。我假设我需要制定路线,但该页面不应该显示该步骤吗?

【问题讨论】:

    标签: symfony symfony-2.8


    【解决方案1】:

    代码在文档第一个代码块中解释:http://symfony.com/doc/2.8/book/page_creation.html#creating-a-page-route-and-controller

    如果这不起作用,则一定有问题。需要检查的几件事:

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

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

    【讨论】:

    • 是的。检查了所有这些东西。 LuckyController.php code 完全复制自演示文档。而且 routing.yml 文件与您在默认安装中描述的完全一样。我不知道这是否重要,但我在 MAMP 环境中运行 Symfony。这是我的安装中唯一“不寻常”的地方,因为人们还没有告诉我做什么工作,我试图弄清楚我在做的其他方面可能与其他人不同。
    • @DanGoodspeed 嗯,您可以尝试运行php app/console debug:router 命令来检查路线是否可用?也许您没有在 AppKernel 中注册 AppBundle?
    • 运行 debug:router 会返回一个包含标题名称、方法、方案、主机和路径的表。 14行,最下面是首页。里面没有关于“幸运”的内容。
    • @DanGoodspeed src/AppBundle/Controller/LuckyController.php 是否以 <?php 开始标签开头?否则,它不会被解析为 PHP 代码。
    • 天啊。谢谢你。这就是问题所在。谢谢你,Wouter J。
    【解决方案2】:

    路由由控制器中的@Route 注释设置(还有其他方法可以做到,但这是适用于大多数情况的默认方法)。所以它是在第 11 行的示例代码中创建的:

         * @Route("/lucky/number")
    

    这在你提到的文档中也有解释:

    numberAction() 上方的@Route 称为注解,它定义了 URL 模式。您还可以使用 YAML(或其他格式)编写路由:请参阅 routing 章节。

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

    php app/console cache:clear
    

    【讨论】:

    • 我清除了缓存,还是不行。我会尝试阅读该路由章节,但我认为“首页创建”演示没有必要这样做。
    • @IgorPantović,是的...注释完全是从LuckyController.php code 复制/粘贴的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2022-01-16
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多